我正在网站上做一些BI工作。网页包含一些单选按钮,当用户单击包含它的框时,这些按钮将以编程方式进行检查。
因此,当用户点击div时,我无法更改html或检查收音机的功能:
<form>
<div><input type="radio" name="a" value="1" checked>1</div>
<div><input type="radio" name="a" value="2">2</div>
</form>
jQuery('form > div').on('click', function() {
$(this).find('input[type=radio]').prop('checked', true);
});
现在我正在尝试编写一些要在此页面上注入的代码。此代码需要检测无线电更改,但除非用户单击无线电本身,否则jQuery on方法无法检测到它。
jQuery('form > div').on('change', 'input[type=radio]', function() {
console.log(1234);
});
https://jsfiddle.net/e6n3roqw/
我该如何解决这个问题?
答案 0 :(得分:1)
使用$(this).find('input[type=radio]').trigger('change');
答案 1 :(得分:1)
更改收音机的已检查属性后,只需触发更改事件,如下所示:
jQuery('form > div').on('click', function() {
var element = $(this).find('input[type=radio]');
element.prop('checked', true);
element.change();
});