这是我用Firebug在Firefox中找到的。

Values of disabled inputs will not be submitted

在其他浏览器中也一样吗?

如果有,原因是什么?


当前回答

它们不会被提交,因为W3C规范是这么说的。

17.13.2成功控制 一个成功的控件是“有效的”提交。(剪) 被禁用的控件无法成功执行。

换句话说,规范说禁用的控件被认为是无效的。

其他回答

选择控件仍然是可点击的,即使在只读attrib

如果你仍然想禁用控件,但你想发布它的值。 您可以考虑创建一个隐藏字段。具有与控件相同的值。

然后创建一个jquery,选择更改

$('#your_select_id').change(function () {
    $('#your_hidden_selectid').val($('#your_select_id').val());
});
<input type="text" disabled /> 

使用readonly代替这个禁用

<input type="text" readonly />

你可以用三个东西来模仿disabled:

HTML: readonly属性(这样输入中的值可以在表单提交时使用。用户也不能改变输入值) CSS: 'pointer-events':'none'(阻止用户点击输入) HTML: tabindex="-1"(阻止用户从键盘导航到输入)

这里是解决方案,仍然使用禁用属性。 首先禁用加载时的输入。

$(document).ready(function(){
  $("formselector:input").prop("disabled",true);
  $( "formselector" ).submit(function( event ) {
      $(":disabled").prop("disabled",false);
      });
});

在提交时启用所有这些。这将确保一切都张贴

禁用的控件不能成功,成功的控件“有效”提交。 这就是禁用控件不能与表单一起提交的原因。