2017-04-20 60 views
0

看看下面我的代码:为什么我总是无法通过javascript将复选标记复选框?

HTML:

<input type="checkbox" name="xyz[1][]" id="sel_44" style="margin:2px;" value="12345" onclick="myClick(this)"> 

的Javascript:

<script> 
$('#sel_44').attr("checked", true); 
</script> 

我已经想尽(通过验收答案提示的方法)方法在这网址:Check/Uncheck checkbox with javascript?

我的问题和问题

我可以肯定的是$( '#sel_loc_cb_44')不为空 ,而不是不确定的。但我可以通过javascript或jquery进行复选标记。 如何解决我的代码和问题的根源是什么?

请将jsfiddle添加到您的解决方案文章。谢谢

+0

设置'prop',而不是'attr'。 –

+0

迈克尔我可以看到许多答案被标记为有用的任何东西解决? –

+0

确保代码在加载DOM后运行。用'准备好'把它包起来。 – Tushar

回答

1

由于jquery 1.6+ prop方法提供了显式检索属性值的方法,而attr检索属性。这里checked是一个属性。因此,使用prop来检查复选框。

$('#sel_44').prop("checked", true); 
2

尝试使用

$('#sel_44').prop("checked", true); 

必须改变DOM对象,而不是属性

+0

@Michael attr改变一个lement的属性不是元素的属性来改变元素的属性,你必须使用道具功能 –

+0

它不适合我。你可以在jsfiddle中给我例子吗? – Michael

+0

当然,这里是链接 https://jsfiddle.net/1vwqe31s/1/ –

1

的属性格式试试这个用jQuery:

$("#sel_44").prop('checked',true); 
+0

不,这是错误的。 '..'是一个点太多了。 –

+0

@NiettheDarkAbsol确定它写错了我编辑它谢谢你 –

0

试试这个

$(document).ready(function() { 
$('#sel_44').attr("checked", true); 
}); 

我在jsfiddler中试过,看起来像你需要把你的代码放在文档就绪函数里面。

https://jsfiddle.net/o2gxgz9r/5935/

+0

我不想这样做时点击。我想检查当它第一次显示,但使用JavaScript不写入DOM检查=“检查” – Michael

0

$(function(){ 
 
    $('#sel_44').prop('checked',true); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" name="xyz[1][]" id="sel_44" style="margin:2px;" value="12345">

+0

我不想这样做时单击。我想检查,当它第一次显示,但使用Javascript不写DOM检查=“检查” – Michael

+0

我已编辑它 – Brissy