我认为他们可以,但我没有把我的钱放在我的嘴(这么说)设置只读属性实际上似乎没有做任何事情。
我宁愿不使用Disabled,因为我希望选中的复选框与表单的其余部分一起提交,我只是不希望客户端能够在某些情况下更改它们。
我认为他们可以,但我没有把我的钱放在我的嘴(这么说)设置只读属性实际上似乎没有做任何事情。
我宁愿不使用Disabled,因为我希望选中的复选框与表单的其余部分一起提交,我只是不希望客户端能够在某些情况下更改它们。
当前回答
我只是不希望客户在某些情况下能够更改它们。
READONLY本身不起作用。你可能可以用CSS做一些奇怪的事情,但我们通常只是禁用它们。
警告:如果它们被发布回来,那么客户端可以更改它们,句号。你不能依靠只读来阻止用户修改某些东西。总是可以使用fiddler或只是改变html w/firebug或诸如此类的东西。
其他回答
在旧的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的原因。
我只是不希望客户在某些情况下能够更改它们。
READONLY本身不起作用。你可能可以用CSS做一些奇怪的事情,但我们通常只是禁用它们。
警告:如果它们被发布回来,那么客户端可以更改它们,句号。你不能依靠只读来阻止用户修改某些东西。总是可以使用fiddler或只是改变html w/firebug或诸如此类的东西。
这就出现了一些可用性问题。
如果您想要显示一个复选框,但不让它与之交互,那么为什么还要使用复选框呢?
然而,我的方法是使用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;
}
}
}
我的解决方案实际上与FlySwat的解决方案相反,但我不确定它是否适用于您的情况。我有一组复选框,每个复选框都有一个提交表单的onClick处理程序(它们用于更改表的过滤器设置)。我不想允许多次单击,因为第一次单击之后的后续单击将被忽略。所以我禁用所有复选框后,第一次点击,并提交后的形式:
onclick = " document.forms [' form1’]。submit ();$('#filters input').each(function() {this。Disabled = true});"
复选框位于ID为“filters”的span元素中——代码的第二部分是一个jQuery语句,它遍历复选框并禁用每个复选框。这样,复选框值仍然通过表单提交(因为表单是在禁用它们之前提交的),并且它可以防止用户更改它们,直到页面重新加载。
你总是可以使用一个小图像,看起来像一个复选框。