代码如图,我手动点击单选框的时候会触发change事件,能正常输出“已选中”,但是下面那句使用jquery选中一个radio时,虽然能正常选中单选框,但是change事件不触发了,求大神帮忙看下这是什么情况??
代码如图,我手动点击单选框的时候会触发change事件,能正常输出“已选中”,但是下面那句使用jquery选中一个radio时,虽然能正常选中单选框,但是change事件不触发了,求大神帮忙看下这是什么情况??
change() 方法的定义和用法
当元素的值发生改变时,会发生 change 事件。该事件仅适用于文本域(text field),以及 textarea 和 select 元素。
摘自http://www.w3school.com.cn/jquery/event_change.asp
当你点击radio的时候改变的是radio的【checked】属性,而不是【value】值。
$('input[name=r]').on('click',function(){
console.log('已选中');
});
事件触发依赖于元素类型,触发方式以及触发不同时刻,如下所示
对于<input type='radio'>和<input type="checkbox">,元素激活时触发(通过点击或者键盘)
用户明确提交更改(例如,鼠标点击选取select,从 <input type="date">选取日期,从<input type="file">选取文件)
元素失去焦点时内容以改变,但并未提交(例如 <textarea> 或者 <input type="text">)也会触发、
不同的游览器不保证特定类型的交互触发change事件。例如,在Gecko,除非用户点击enter或者从<select>移去焦点,通过键盘选取select将不会触发change事件。
应该绑定ifChecked事件
$("input[name='radioName']").on('ifChecked', function(event){
test();
});
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
用这个试试?