如何正确设置复选框的格式.(最适合jquery和跨浏览器)
how to properly format checkboxes. (best for jquery and crossbrowser)
我见过很多方法。我记得我在跨浏览器使用jQuery检索复选框状态时遇到了一些问题。
从html checked
到checked="true"
和checked="1"
甚至checked=checked
或checked="yes"
现在…一次为永远。什么是最好的交叉方式?勾选/取消勾选,使jquery最终工作/改变状态吗?
checked
属性是一个布尔属性。它接受一个值,并且只有一个值:checked
。这在HTML 5中没有改变。
checked="checked"
如果您正在编写HTML(而不是XHTML),那么您可以只提供值。
checked
在JavaScript中,checked
属性可以被赋值为true
或false
。任何其他值都将被转换(例如,"checked"
是一个字符串,因此它根据转换字符串的规则进行转换,并成为true
)。
这其实很简单,只是jQuery把大家搞糊涂了。
- 在HTML中使用不带值的
checked
或checked="checked"
。 - 在XHTML中(尽管实际上不太可能使用它),使用
checked="checked"
。
在JavaScript中,复选框的勾选性在每个可脚本浏览器中都以最简单的方式表示:布尔属性。那么,给定HTML
<input id="foo" type="checkbox" checked>
…您可以通过以下方式获取其已检查状态:
var checkbox = document.getElementById("foo");
alert(checkbox.checked);
…并按如下方式设置:
checkbox.checked = false;
。
jQuery的优势在于能够在一次调用中处理多个元素。在jQuery 1.6及以后的版本中,您可以使用prop()
完成此操作。在早期版本中,使用attr()
。
$("#foo").prop("checked", false);
不要尝试直接处理属性:简单地使用checked
属性,你永远不会出错。在处理HTML时,这适用于几乎所有的属性。
我通常这样做是为了检查它是否被检查过,我从来没有出现过问题:
$('#chk').click(function(){
$('#show').toggle($(this).is(':checked'));
});
和这个复选/取消选中(jquery 1.6或更高版本):
$('#button').click(function(){
var chk = $('#chk')
if(chk.is(':checked')){
chk.prop('checked', false);
}else{
chk.prop('checked', true);
}
});
要使用jquery检查或取消检查,您应该始终使用prop(),因为它专门针对属性。
在纯HTML中,我认为正确的方法是(当然,如果你不希望复选框被选中,则省略checked):
<input id='chk' type='checkbox' checked value='1'>
小提琴:http://jsfiddle.net/TTWVd/2/
就我而言,只要checked
属性存在,该框就应该被选中,即使您继续将值设置为false,例如checked="false"
。
然而,我通常使用checked="checked"
,我从来没有遇到过跨浏览器不一致的问题。
然而,MDN文档建议使用布尔值作为字符串(如果有意义的话)。然而,在我上面的例子中,在FireFox 5中,checked="false"
仍然检查元素
在JavaScript中,该属性是一个布尔值。在HTML中,属性将被"选中"(这也可以在W3标准中显示——注意(选中)(HTML中的布尔值通常是它们的属性名))
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- jQuery检测浏览器是否支持Zoom
- 通过浏览器加载页面时触发加载脚本(js或jQuery)'s”;返回“;作用
- 为什么不在浏览器上获得JQuery效果呢
- Jquery Draggable-在浏览器刷新时保持位置
- 防止“;jQuery(html)"防止触发浏览器请求图像和其他参考内容
- HTML5在浏览器大小javascript/jquery上调整字体大小
- 如何在jquery中检测浏览器的后退按钮,如果有任何对话框打开,请关闭它
- JQuery不会在Safari以外的任何浏览器中加载
- Jquery浏览器滚动问题
- JQuery :浏览器未聚焦时的焦点
- Javascript/jQuery浏览器检测
- JavaScript或jQuery浏览器返回按钮点击检测器
- Javascript/JQuery浏览器测试框架为IE9/FF/Chrome
- 如何避免在asp.net/javascript/jquery浏览器中打开相同的url链接
- TypeError: jQuery.浏览器未定义
- 简单吗?jquery浏览器兼容性问题
- jQuery 1.6浏览器检测
- 使用jQuery浏览器返回并关闭事件
- jQuery 1.9 浏览器检测