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

Values of disabled inputs will not be submitted

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

如果有,原因是什么?


当前回答

有两个属性,即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中引入的道具。

其他回答

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

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

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

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

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

$('#your_select_id').change(function () {
    $('#your_hidden_selectid').val($('#your_select_id').val());
});

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

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

使用readonly属性:

<input type="text" readonly />

源在这里

有两个属性,即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中引入的道具。