表单的HTML标准似乎是禁用的输入元素不对表单名称/值集合做出贡献.
有没有办法解决这个问题?我需要能够打开和关闭禁用,但仍然返回提交表单时的值.
我意识到我可以使用JavaScript在提交表单之前将值复制到隐藏的输入,但我不愿意.有更干净的方式吗?
我正在使用ASP.NET,而不是那么重要.
你应该使用readOnly
旗帜而不是disabled
.用户无法编辑只读字段,但仍会随表单一起提交.
表单的HTML标准似乎是禁用的输入元素不对表单名称/值集合做出贡献.
那是正确的.
HACK:您可以在提交时使用Javascript:
未设置已禁用
只读设置
提交!
如果您只读取值,而不是禁用它,则字段的名称/值将与其余的非禁用字段一起发送.
使readonly字段的焦点事件处理程序将焦点传递给下一个符合条件的字段,使其更像是一个禁用元素.有些浏览器可以让你集中精力并选择只读字段,有些浏览器甚至可以让你粘贴到只读字段,尽管它们会恢复到原始值onblur和onchange.
作为Wayne骇客的一个稍微强大的变种(可能会被后退按钮推动混淆),当禁用控件时:设置readonly= true
而className= 'disabled'
不是disabled= true
,然后样式.disabled
看起来类似于禁用字段.