在jquery中,通過點擊事件設置radio的checked屬性不生效。
1、html
<div id="weChatSignIn">
<input type="radio" name="nameList" value="微信簽到用戶抽獎" id='wechat'/>微信簽到用戶抽獎
</div>
<!-- 在input外面添加div,是為了設置display:none屬性 -->
<div id='importNameList'>
<input type="radio" name="nameList" value="導入名單參與抽獎" id="import" />導入名單參與抽獎
</div>
2、css
form input[type='radio']{
margin-left: 140px;
}
3、js
// 當選擇“微信用戶簽到抽獎”時,觸發
$('#weChatSignIn').click(function(){
$('#wechat').attr('checked','checked');
});
// 選擇“導入名單抽獎”觸發
$('#importNameList').click(function(){
$('#import').attr('checked','checked');
});
4、效果:無論怎么點擊,都是第一個radio選中
5、這里的主要原因是用attr()函數來設置元素的屬性,如果換成prop()函數來設置屬性就正常了,如下面所示:
// 當選擇“微信用戶簽到抽獎”時,觸發
$('#weChatSignIn').click(function(){
$('#wechat').prop('checked','checked');
});
// 選擇“導入名單抽獎”觸發
$('#importNameList').click(function(){
$('#import').prop('checked','checked');
});
6、attr()和prop()的區別
attr()方法主要是用來處理自定義的DOM屬性;
prop()方法主要是用來處理本身就帶有的固有屬性,W3C標准里面說明的屬性,或者在IDE里面能夠智能提示的屬性,都是固 有屬性,可以結合這篇文章一起看:http://blog.csdn.net/tangxiujiang/article/details/76735188
7、什么時候使用它們呢
具有true和false屬性的屬性,就使用prop(),比如checked selected disabled等,其他的使用attr()