29

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

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

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

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

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

提前致谢

4

2 回答 2

57

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

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

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

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

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

@Html.TextBoxFor(u => u.Visibilidade, new { @readonly = "readonly", @Name = "" })
于 2014-02-26T20:16:42.053 回答
0

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

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

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

于 2022-02-25T22:32:13.817 回答