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

Values of disabled inputs will not be submitted

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

如果有,原因是什么?


当前回答

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

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

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

其他回答

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

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

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

禁用的输入将无法提交数据。

使用readonly属性:

<input type="text" readonly />

源在这里

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

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

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

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

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

有两个属性,即readonly和disabled,可以生成半只读输入。但是它们之间有一个微小的区别。

<input type="text" readonly />
<input type="text" disabled />

readonly属性使您的输入文本禁用,用户不能再更改它。 disabled属性不仅会使您的输入文本被禁用(不可更改),而且也不能提交。

jQuery方法(1):

$("#inputID").prop("readonly", true);
$("#inputID").prop("disabled", true);

jQuery方法(2):

$("#inputID").attr("readonly","readonly");
$("#inputID").attr("disabled", "disabled");

JavaScript方法:

document.getElementById("inputID").readOnly = true;
document.getElementById("inputID").disabled = true;

PS disabled和readonly是标准的html属性。jQuery 1.6中引入的道具。