我在表单中有一些禁用的输入,我想将它们发送到服务器,但 Chrome 将它们从请求中排除。
在不添加隐藏字段的情况下是否有任何解决方法?
<form action="/Media/Add">
<input type="hidden" name="Id" value="123" />
<!-- this does not appear in request -->
<input type="textbox" name="Percentage" value="100" disabled="disabled" />
</form>
最佳答案
具有 disabled
属性的元素未提交,或者您可以说它们的值未发布(参见 the HTML 5 spec for building the form data set 中第 3 步下的第二个要点)。
即,
<input type="textbox" name="Percentage" value="100" disabled="disabled" />
仅供引用,根据 17.12.1在 HTML 4 规范中:
- 禁用的控件不会获得焦点。
- 在选项卡式导航中会跳过禁用的控件。
- 无法成功发布已禁用的控件。
您可以在您的情况下使用 readonly
属性,通过这样做您将能够发布您的字段数据。
即,
<input type="textbox" name="Percentage" value="100" readonly="readonly" />
仅供引用,根据 17.12.2在 HTML 4 规范中:
- 只读元素获得焦点,但用户不能修改。
- 只读元素包含在标签导航中。
- 已成功发布只读元素。
关于html - 禁用的表单输入未出现在请求中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7357256/