我认为他们可以,但我没有把我的钱放在我的嘴(这么说)设置只读属性实际上似乎没有做任何事情。
我宁愿不使用Disabled,因为我希望选中的复选框与表单的其余部分一起提交,我只是不希望客户端能够在某些情况下更改它们。
我认为他们可以,但我没有把我的钱放在我的嘴(这么说)设置只读属性实际上似乎没有做任何事情。
我宁愿不使用Disabled,因为我希望选中的复选框与表单的其余部分一起提交,我只是不希望客户端能够在某些情况下更改它们。
当前回答
你总是可以使用一个小图像,看起来像一个复选框。
其他回答
在这里,你们没有人想到的是,你们都在使用JavaScript,任何用户都可以很容易地绕过它。
简单地禁用它将禁用所有JQuery/Return False语句。
只读复选框的唯一选项是服务器端。
显示他们,让他们改变他们,但不接受新的帖子数据从他们。
我会使用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;
}
尝试将复选框设置为只读,但不允许用户勾选。这将允许您POST复选框的值。为了这样做,您需要选择复选框的默认状态为Checked。
<input type="checkbox" readonly="readonly" onclick="this.checked =! this.checked;">
如果你想要上面的功能+不想接收复选框数据,试试下面的:
<input type="checkbox" readonly="readonly" disabled="disabled" onclick="this.checked =! this.checked;">
希望这能有所帮助。
这是一个不能更改的复选框:
<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='checkbox'>无效
所以,如果你需要从表单中禁用的复选框中提交值,你可以使用jQuery:
$('form').submit(function(e) {
$('input[type="checkbox"]:disabled').each(function(e) {
$(this).removeAttr('disabled');
})
});
通过这种方式,在提交表单时从元素中删除禁用属性。