jquery无法设置checkbox选中即没有变成选中状态

 设置以后checkbox并没有变成选中状态,用chrome调试看了一下,checkbox中确实有checked属性,针对这个问题,大家可以参考下本文

代码如下:
$("input").attr("checked","checked") 
 
设置以后checkbox并没有变成选中状态,用chrome调试看了一下,checkbox中确实有checked属性,而且,值为checked,但是页面显示仍然为未选中状态 
代码如下:
$("input").prop("checked",true); 
 
 
ttributes和properties之间的差异在特定情况下是很重要。jQuery 1.6之前 ,.attr()方法在取某些 attribute 的值时,会返回 property 的值,这就导致了结果的不一致。从 jQuery 1.6 开始, .prop()方法 方法返回 property 的值,而 .attr() 方法返回 attributes 的值。 
 
例如, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected 应使用.prop()方法进行取值或赋值。 在jQuery1.6之前,这些属性使用.attr()方法取得,但是这并不是元素的attr属性。他们没有相应的属性(attributes),只有特性(property)。 
 
例如,考虑一个DOM元素的HTML标记中定义的<input type="checkbox" checked="checked" /> ,并假设它是一个JavaScript变量命名的elem : 
 
elem.checked true (Boolean) 将改变复选框的状态 
$(elem).prop("checked") true (Boolean) 将改变复选框的状态 
elem.getAttribute("checked") "checked" (String) 不会改变的复选框的初始状态; 
$(elem).attr("checked") (1.6) "checked" (String) 不会改变的复选框的初始状态; 
$(elem).attr("checked") (1.6.1+) "checked" (String) 将改变复选框的状态 
$(elem).attr("checked") (pre-1.6) true (Boolean) 将改变复选框的状态 
根据W3C的表单规范 ,在checked属性是一个布尔属性,这意味着只要该 attribute 存在,即使它没有值,或是一个空字符串,该属性对应的 property 就是 true。以下推荐的是兼容浏览器方式,判断 checkbox 元素的 checked 属性是否为"真" 的方法: 
 代码如下:
if ( elem.checked ) 
if ( $(elem).prop("checked") ) 
if ( $(elem).is(":checked") ) 
 
如果你使用jQuery 1.6 ,代码if ( $(elem).attr("checked") ),将获得一个属性(attribute) ,它不改变该复选框被选中和选中。它只是用来存储默认或选中属性的初始值。为了保持向后兼容,.attr() 方法从 jQuery 1.6.1+ 开始除了返回属性值外,还会更新 property 属性,因此 boolean attribute(布尔属性)不需要通过 .prop() 来改变其值。推荐使用上述方法之一,来取得 checked 的值。 

时间: 2024-11-08 17:40:21

jquery无法设置checkbox选中即没有变成选中状态的相关文章

jquery无法设置checkbox选中即没有变成选中状态_jquery

复制代码 代码如下: $("input").attr("checked","checked") 设置以后checkbox并没有变成选中状态,用chrome调试看了一下,checkbox中确实有checked属性,而且,值为checked,但是页面显示仍然为未选中状态 复制代码 代码如下: $("input").prop("checked",true); ttributes和properties之间的差异在特

jQuery prop设置checkbox全选、反选的例子

大家都知道 jQuery 可通过 attr 方法来设置 dom 属性,自然的也就想到用 $(dom).attr('checked', 'checked'); 这种方法来选择 checkbox 了,但是最近在项目中使用 checkbox 全选.反选的时候,却出现了问题: 在使用 attr 方法设置选择后,点击第一次可以设置反选,第二次却不行了. $(function(){     var checkbox = $("input[type='checkbox']");     //全选  

JQuery 设置checkbox值二次无效的解决方法_jquery

在此MVC ASP.NET 项目,我利用jquery ajax传输数据给后台controller控制层,返回数据给JQuery数据. 首先必须清除checkbox的选中,因为是ajax的异步操作,是不刷新页面的,所以需要手段充值控件值,使得其为空,不影响下次的拿到数据显示. 言归正传,$("#checkboxID").attr('checked', false);//设置checkbox为不选中状态, $("#checkboxID").attr('checked',

jquery radio,checkbox,select取值与选中代码

jquery radio,checkbox,select取值与选中代码 获取一组radio被选中项的值 var item = $('input[@name=items][@checked]').val(); 获取select被选中项的文本 var item = $("select[@name=items] option[@selected]").text(); select下拉框的第二个元素为当前选中值 $('#select_id')[0].selectedIndex = 1; rad

Jquery 改变radio/checkbox选中状态,获取选中的值

 这篇文章主要介绍了Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码) 需要的朋友可以过来参考下,希望对大家有所帮助 //如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_category").each(function() {  if ($(this).attr('checked')){                         $(this).attr('checked' ,false);                

jquery select 设置默认选中的示例代码

 本篇文章主要是对jquery select 设置默认选中的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 代码如下:   其中<%=selectedvalue %>为从后台获取的值   $(document).ready(function(){    $("#seltype").attr("value",parseInt('<%=selectedvalue %>'));  })    

jquery 表格行选一行选中checkbox,但首次点击checkbox要点两次才能选中

问题描述 jquery 表格行选一行选中checkbox,但首次点击checkbox要点两次才能选中 这是js 行选的代码段,可以行选,但是点击checkbox本身要点鼠标两次才能选中,求原因. // 行选中 $("table tbody tr").click(function() { var input = $(this).find("input[type=checkbox]");//获取checkbox //给checkbox的click添加阻止冒泡事件 inp

js 根据内容设置checkbox为选中状态

js 根据内容设置checkbox为选中状态 这是根据自己的需要写的一款,根据用户填写的内容,再自动判断checkbox值有存在用户输入的内容中不,如果存在就把当前checkbox状态设置为checked就ko了. <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

jQuery获取Radio,CheckBox选择的Value值

 这篇文章主要是对jQuery获取Radio,CheckBox选择的Value值进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 $("input[name='radio_name'][checked]").val(); //选择被选中Radio的Value值 $("#text_id").focus(function(){//code...}); //事件 当对象text_id获取焦点时触发 $("#text_id").blur(f