我认为他们可以,但我没有把我的钱放在我的嘴(这么说)设置只读属性实际上似乎没有做任何事情。
我宁愿不使用Disabled,因为我希望选中的复选框与表单的其余部分一起提交,我只是不希望客户端能够在某些情况下更改它们。
我认为他们可以,但我没有把我的钱放在我的嘴(这么说)设置只读属性实际上似乎没有做任何事情。
我宁愿不使用Disabled,因为我希望选中的复选框与表单的其余部分一起提交,我只是不希望客户端能够在某些情况下更改它们。
当前回答
这就出现了一些可用性问题。
如果您想要显示一个复选框,但不让它与之交互,那么为什么还要使用复选框呢?
然而,我的方法是使用disabled(用户希望禁用的复选框不可编辑,而不是使用JS使启用的复选框无法工作),并使用javascript添加一个表单提交处理程序,在表单提交之前启用复选框。这样你就能把你的价值观公布出来。
是这样的:
var form = document.getElementById('yourform');
form.onSubmit = function ()
{
var formElems = document.getElementsByTagName('INPUT');
for (var i = 0; i , formElems.length; i++)
{
if (formElems[i].type == 'checkbox')
{
formElems[i].disabled = false;
}
}
}
其他回答
这是一个不能更改的复选框:
<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"/>
这样,当复选框被设置为“禁用”时,它只服务于数据的可视化表示,而不是实际“链接”到数据。在回发中,当复选框被禁用时,隐藏输入的值将被发送。
这就出现了一些可用性问题。
如果您想要显示一个复选框,但不让它与之交互,那么为什么还要使用复选框呢?
然而,我的方法是使用disabled(用户希望禁用的复选框不可编辑,而不是使用JS使启用的复选框无法工作),并使用javascript添加一个表单提交处理程序,在表单提交之前启用复选框。这样你就能把你的价值观公布出来。
是这样的:
var form = document.getElementById('yourform');
form.onSubmit = function ()
{
var formElems = document.getElementsByTagName('INPUT');
for (var i = 0; i , formElems.length; i++)
{
if (formElems[i].type == 'checkbox')
{
formElems[i].disabled = false;
}
}
}
onclick="javascript: return false;"
如果你知道复选框总是被选中,下面的工作:
<input type="checkbox" name="Name" checked onchange='this.checked = true;'>
不,输入复选框不能为只读。
但是你可以用javascript把它们变成只读的!
通过防止用户以任何方式修改复选框,在任何时间的任何地方添加这段代码,使复选框像假设的那样为只读。
jQuery(document).on('click', function(e){ // check for type, avoid selecting the element for performance if(e.target.type == 'checkbox') { var el = jQuery(e.target); if(el.prop('readonly')) { // prevent it from changing state e.preventDefault(); } } }); input[type=checkbox][readonly] { cursor: not-allowed; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <label><input type="checkbox" checked readonly> I'm readonly!</label>
你可以在加载jQuery后的任何时候添加这个脚本。
它将适用于动态添加的元素。
它的工作原理是在页面上的任何元素上选择单击事件(发生在更改事件之前),然后检查该元素是否是只读复选框,如果是,则阻止更改。
为了不影响页面的性能,有太多的if。