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

新手上路,请多包涵

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

原文由 hazzik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 343
2 个回答

带有 disabled 属性的元素未提交,或者您可以说它们的值未发布(请参阅 构建表单数据集的 HTML 5 规范中 步骤 3 下的第二个要点)。

IE,

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

仅供参考,根据 HTML 4 规范中的 17.12.1

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

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

IE,

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

仅供参考,根据 HTML 4 规范中的 17.12.2

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

原文由 talha2k 发布,翻译遵循 CC BY-SA 4.0 许可协议

不要在您的情况下提供“名称”属性 <input type="textbox" value="100" disabled="disabled" /> 如果您的请求识别“名称”属性,如果您的请求使用“ID”属性识别,则永远不会设置“ID”

原文由 Lundy Bin Abraham 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题