我认为他们可以,但我没有把我的钱放在我的嘴(这么说)设置只读属性实际上似乎没有做任何事情。

我宁愿不使用Disabled,因为我希望选中的复选框与表单的其余部分一起提交,我只是不希望客户端能够在某些情况下更改它们。


当前回答

这是一个不能更改的复选框:

<input type="checkbox" disabled="disabled" checked="checked">

只需添加disabled="disabled"作为属性。

编辑以处理评论:

如果你想要数据被返回,那么一个简单的解决方案是将相同的名称应用到隐藏的输入:

<input name="myvalue" type="checkbox" disabled="disabled" checked="checked"/>
<input name="myvalue" type="hidden" value="true"/>

这样,当复选框被设置为“禁用”时,它只服务于数据的可视化表示,而不是实际“链接”到数据。在回发中,当复选框被禁用时,隐藏输入的值将被发送。

其他回答

<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;">

但你绝对必须验证服务器上的数据,以确保它没有被更改。

如果你知道复选框总是被选中,下面的工作:

<input type="checkbox" name="Name" checked onchange='this.checked = true;'>

这适用于我的Chrome浏览器:

<input type="checkbox" onclick="return false">
<input type="checkbox" readonly="readonly" name="..." />

jquery:

$(':checkbox[readonly]').click(function(){
            return false;
        });

它仍然可能是一个好主意,给一些视觉提示(css,文本,…),控件将不接受输入。