这是我用Firebug在Firefox中找到的。
Values of disabled inputs will not be submitted
在其他浏览器中也一样吗?
如果有,原因是什么?
这是我用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中引入的道具。