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

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


当前回答

很晚才开始贡献……但无论如何。在页面加载时,使用jquery禁用除当前选中的复选框外的所有复选框。然后将当前选中的选项设置为只读,这样它的外观与禁用选项相似。用户不能更改该值,所选值仍然提交。

其他回答

最简单的(在我看来):

onclick="javascript:{this.checked = this.defaultChecked;}"
<input type="radio" name="alwaysOn" onchange="this.checked=true" checked="checked">
<input type="radio" name="alwaysOff" onchange="this.checked=false" >

不,但是您可以使用javascript事件来实现类似的功能

尝试将复选框设置为只读,但不允许用户勾选。这将允许您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'>无效

所以,如果你需要从表单中禁用的复选框中提交值,你可以使用jQuery:

$('form').submit(function(e) {
    $('input[type="checkbox"]:disabled').each(function(e) {
        $(this).removeAttr('disabled');
    })
});

通过这种方式,在提交表单时从元素中删除禁用属性。