猿问

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

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

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


四季花海
浏览 441回答 3
3回答

沧海一幻觉

没有提交禁用属性的元素,也可以说它们的值没有提交(参见步骤3下的第二个项目)。用于构建表单数据集的规范).也就是说,<input&nbsp;type="textbox"&nbsp;name="Percentage"&nbsp;value="100"&nbsp;disabled="disabled"&nbsp;/>FYI,禁用控件不接收焦点。在选项卡导航中跳过禁用的控件。无法成功发布禁用控件。你可以用readonly属性,通过这样做,您将能够发布字段的数据。也就是说,<input&nbsp;type="textbox"&nbsp;name="Percentage"&nbsp;value="100"&nbsp;readonly="readonly"&nbsp;/>FYI,只读元素接收焦点,但用户不能修改.选项卡导航中包括只读元素.只读元素已成功发布。

aluckdog

使用jQuery并使用Ajax发送数据,您可以解决问题:<script>$('#form_id').submit(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$("#input_disabled_id").prop('disabled',&nbsp;false); &nbsp;&nbsp;&nbsp;&nbsp;//Rest&nbsp;of&nbsp;code &nbsp;&nbsp;&nbsp;&nbsp;})</script>

慕莱坞森

如果您必须禁用字段并传递数据,则可以使用javascript将相同的数据输入到隐藏字段(也可以设置隐藏字段)。这将允许您禁用它,但仍然发布数据,即使您将张贴到另一个页面。
随时随地看视频慕课网APP
我要回答