【问题标题】:What is readonly for in a disabled TextBoxFor?在禁用的 TextBoxFor 中什么是只读的?
【发布时间】:2014-03-29 21:57:30
【问题描述】:

我有两种不同的方式来使用 DISABLED TextBoxFor,即:

@Html.TextBoxFor(u => u.Visibilidade, new { disabled = "disabled", @readonly = "readonly" })

@Html.TextBoxFor(u => u.Visibilidade, new { disabled = "disabled" })

即。使用或不使用只读属性

考虑到禁用的字段不会以任何方式更改,有什么区别?

提前致谢

【问题讨论】:

标签: asp.net-mvc-5 html.textboxfor


【解决方案1】:

通常你会使用其中一个,而不是两个。

Readonly 允许用户专注于文本框以复制文本或触发事件。只读字段将与表单一起发布。

使用禁用的字段,用户无法将焦点放在文本框上,并且该字段不会与表单一起发布。

您使用哪一个取决于您需要对该字段执行的操作。

如果您想启用焦点但不希望它发布,您可以将其设为只读,但覆盖 name 属性。

@Html.TextBoxFor(u => u.Visibilidade, new { @readonly = "readonly", @Name = "" })

【讨论】:

  • 谢谢。如果我希望用户能够专注于文本框,但不希望其内容与表单一起发布,该怎么办?两者兼而有之。
  • @FelipeAthayde,我唯一能想到的就是不要为该字段分配name 属性。查看更新。
【解决方案2】:

注意:如果您希望禁用它,但确实希望将原始值与表单一起发布,您可以将 HiddenFor 与 TextboxFor 一起使用(将 id 设置为 null 所以浏览器控制台不会抱怨重复的 ID):

@Html.TextBoxFor(u => u.Visibilidade, new { @disabled = "disabled"})
@Html.HiddenFor(u => u.Visibilidade, new { id = null });

这样,来自 HiddenFor 的值将与表单一起发布,但文本框将显示为禁用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 2011-04-29
    相关资源
    最近更新 更多