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

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

具有“已禁用”属性的元素未提交,或者您可以说他们的值未发布(请参阅构建表单数据集的规范中步骤3中的第二个项目符号点)。

也就是说,

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

仅供参考,

  • 禁用的控件不会获得焦点。
  • 禁用的控件在Tab键导航中跳过。
  • 禁用的控件无法成功发布。
  • 您可以在您的案例中使用readonly属性,通过这样做,您将能够发布您的字段的数据。

    也就是说,

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

    仅供参考,

  • 只读元素获得焦点但不能被用户修改。
  • 选项卡导航中包含只读元素。
  • 只读元素已成功发布。

  • 使用jquery并用ajax发送数据,你可以解决你的问题:

    <script>
    
    $('#form_id').submit(function() {
        $("#input_disabled_id").prop('disabled', false);
    
        //Rest of code
        })
    </script>
    

    如果您必须禁用该字段并传递数据,则可以使用javascript将相同的数据输入到隐藏字段中(或者也可以只设置隐藏字段)。 这将允许您禁用它,但仍会发布数据,即使您将发布到其他页面。

    链接地址: http://www.djcxy.com/p/4495.html

    上一篇: Disabled form inputs do not appear in the request

    下一篇: jQuery disable/enable submit button