【紧急】为啥jquery控制radio是否选中后,不触发radio的change事件????

图片描述

代码如图,我手动点击单选框的时候会触发change事件,能正常输出“已选中”,但是下面那句使用jquery选中一个radio时,虽然能正常选中单选框,但是change事件不触发了,求大神帮忙看下这是什么情况??

阅读 23.6k
5 个回答
$('input[value=1]').click();

用这个试试?

$('input[value="1"]').prop('checked',true).trigger('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();
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题