html - 禁用的表单输入未出现在请求中

标签 html forms http browser

我在表单中有一些禁用的输入,我想将它们发送到服务器,但 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 规范中:

  1. 禁用的控件不会获得焦点。
  2. 在选项卡式导航中会跳过禁用的控件。
  3. 无法成功发布已禁用的控件。

您可以在您的情况下使用 readonly 属性,通过这样做您将能够发布您的字段数据。

即,

<input type="textbox" name="Percentage" value="100" readonly="readonly" />

仅供引用,根据 17.12.2在 HTML 4 规范中:

  1. 只读元素获得焦点,但用户不能修改。
  2. 只读元素包含在标签导航中。
  3. 已成功发布只读元素。

关于html - 禁用的表单输入未出现在请求中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7357256/

相关文章:

javascript - 输入未改变状态 REACTJS

sockets - 如何将 HTTPS 流量从 SOCKS 代理转发到 HTTP 代理

java - HTTP 服务器无法与浏览器一起使用

HTTP - 我应该使用 Last-Modified 作为 Etag 吗?

jquery - 页脚上方的 float 社交图标

html - 在 HTML 表单上放置多个提交按钮是不好的做法吗?

javascript - Live Reload 在 6 秒后刷新,有时会被种植

html - Fabric.js 中的两个 Canvas 相互叠加

html - 未弃用的 <form target ="...">

html - 使选择表单中第一个选项的颜色和可点击的字体很棒