我认为他们可以,但我没有把我的钱放在我的嘴(这么说)设置只读属性实际上似乎没有做任何事情。
我宁愿不使用Disabled,因为我希望选中的复选框与表单的其余部分一起提交,我只是不希望客户端能够在某些情况下更改它们。
我认为他们可以,但我没有把我的钱放在我的嘴(这么说)设置只读属性实际上似乎没有做任何事情。
我宁愿不使用Disabled,因为我希望选中的复选框与表单的其余部分一起提交,我只是不希望客户端能够在某些情况下更改它们。
当前回答
我会使用readonly属性
<input type="checkbox" readonly>
然后使用CSS禁用交互:
input[type='checkbox'][readonly]{
pointer-events: none;
}
注意,使用伪类:read-only在这里不起作用。
input[type='checkbox']:read-only{ /*not working*/
pointer-events: none;
}
其他回答
这里的一些答案似乎有点迂回,但这里有一个小技巧。
<form id="aform" name="aform" method="POST">
<input name="chkBox_1" type="checkbox" checked value="1" disabled="disabled" />
<input id="submitBttn" type="button" value="Submit" onClick='return submitPage();'>
</form>
然后在jquery中,你可以选择以下两个选项之一:
$(document).ready(function(){
//first option, you don't need the disabled attribute, this will prevent
//the user from changing the checkbox values
$("input[name^='chkBox_1']").click(function(e){
e.preventDefault();
});
//second option, keep the disabled attribute, and disable it upon submit
$("#submitBttn").click(function(){
$("input[name^='chkBox_1']").attr("disabled",false);
$("#aform").submit();
});
});
演示: http://jsfiddle.net/5WFYt/
我知道“disabled”不是一个可接受的答案,因为操作希望它发布。但是,即使设置了只读选项集,也必须在服务器端验证值。这是因为您无法阻止恶意用户使用readonly属性发布值。
我建议存储原始值(服务器端),并将其设置为禁用。然后,当他们提交表单时,忽略发布的任何值,并使用您存储的原始值。
它的外观和行为都像一个只读值。它处理(忽略)来自恶意用户的帖子。你真是一举两得。
<input type="radio" name="alwaysOn" onchange="this.checked=true" checked="checked">
<input type="radio" name="alwaysOff" onchange="this.checked=false" >
<input type="checkbox" onclick="this.checked=!this.checked;">
但你绝对必须验证服务器上的数据,以确保它没有被更改。
在旧的HTML中可以使用
<input type="checkbox" disabled checked>text
但实际上不建议只使用旧的HTML,现在你应该使用XHTML。
在格式良好的XHTML中必须使用
<input type="checkbox" disabled="disabled" checked="checked" />text <!-- if yu have a checked box-->
<input type="checkbox" disabled="disabled" />text <!-- if you have a unchecked box -->
格式良好的XHTML需要XML表单,这就是使用disabled="disabled"而不是简单地使用disabled的原因。