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

我宁愿不使用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"/>

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

其他回答

尝试将复选框设置为只读,但不允许用户勾选。这将允许您POST复选框的值。为了这样做,您需要选择复选框的默认状态为Checked。

<input type="checkbox" readonly="readonly" onclick="this.checked =! this.checked;">

如果你想要上面的功能+不想接收复选框数据,试试下面的:

<input type="checkbox" readonly="readonly" disabled="disabled" onclick="this.checked =! this.checked;">

希望这能有所帮助。

为什么不在上面用一个空白div覆盖输入呢?

<div id='checkbox_wrap'>
   <div class='click_block'></div>
   <input type='checkbox' /> 
</div>

然后是CSS

 #checkbox_wrap{
   height:10px;
   width:10px;
   }
 .click_block{
   height: 10px;
   width: 10px;
   position: absolute;
   z-index: 100;
}

在旧的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的原因。

你可以用这个:

<input type="checkbox" onclick="return false;"/>

这是因为从click事件返回false会停止执行链的继续。

人们喜欢只读复选框和(以及)只读无线电组的主要原因是,不能更改的信息可以以输入的形式显示给用户。

好的,禁用控件就可以做到这一点——不幸的是禁用控件不能用键盘导航,因此违反了所有可访问性法规。这是我所知道的HTML中最大的问题。