iCheck 库的 ifChanged 事件仅针对第一个单选按钮的更改触发
ifChanged event of iCheck library is triggered for only first radio button's changes
我正在尝试触发 iCheck 的 ifChanged 事件。但只有当我将我的选择更改为第一选择(阅读)以及我将我的选择从第一选择(阅读)更改为其他选择时,它才会触发。我的意思是,只要第一个选择是更改的主题,console.log 就会打印 'R' 到控制台。
每当第二个和第三个选择(未读、全部)之间发生变化时,根本不会触发该事件。
我希望每次更改选择并打印与新选择关联的值时都触发它。
我做错了什么?
<script>
$( document ).ready(function() {
$( 'input').iCheck({
radioClass:'iradio_minimal-blue'
});
$( '#read_flag').on('ifChanged', function(event) {
console.log( $(this).val() );
});
});
</script>
<div class="form-group">
<label>
<input type="radio" name="read_flag" id="read_flag" value="R">
Read
</label>
<label>
<input type="radio" name="read_flag" id="read_flag" value="U">
Unread
</label>
<label>
<input type="radio" name="read_flag" id="read_flag" value="A">
All
</label>
</div>
id
属性在 dom 中应该是唯一的。因此,当您使用 $('#read_flag')
时,它总是 return DOM 中的第一个匹配元素。要解决此问题,您可以将所有单选按钮的 id
更新为 class
,例如:
<input type="radio" name="read_flag" class="read_flag" value="A">
然后像这样更新您的 js 代码:
$('.read_flag').on('ifChanged', function(event) {
console.log( $(this).val() );
});
如果您由于某种原因无法更新 HTML 代码,您可以使用 input:radio
选择器,例如:
$('.form-group input:radio').on('ifChanged', function(event) {
console.log( $(this).val() );
});
我正在尝试触发 iCheck 的 ifChanged 事件。但只有当我将我的选择更改为第一选择(阅读)以及我将我的选择从第一选择(阅读)更改为其他选择时,它才会触发。我的意思是,只要第一个选择是更改的主题,console.log 就会打印 'R' 到控制台。
每当第二个和第三个选择(未读、全部)之间发生变化时,根本不会触发该事件。
我希望每次更改选择并打印与新选择关联的值时都触发它。
我做错了什么?
<script>
$( document ).ready(function() {
$( 'input').iCheck({
radioClass:'iradio_minimal-blue'
});
$( '#read_flag').on('ifChanged', function(event) {
console.log( $(this).val() );
});
});
</script>
<div class="form-group">
<label>
<input type="radio" name="read_flag" id="read_flag" value="R">
Read
</label>
<label>
<input type="radio" name="read_flag" id="read_flag" value="U">
Unread
</label>
<label>
<input type="radio" name="read_flag" id="read_flag" value="A">
All
</label>
</div>
id
属性在 dom 中应该是唯一的。因此,当您使用 $('#read_flag')
时,它总是 return DOM 中的第一个匹配元素。要解决此问题,您可以将所有单选按钮的 id
更新为 class
,例如:
<input type="radio" name="read_flag" class="read_flag" value="A">
然后像这样更新您的 js 代码:
$('.read_flag').on('ifChanged', function(event) {
console.log( $(this).val() );
});
如果您由于某种原因无法更新 HTML 代码,您可以使用 input:radio
选择器,例如:
$('.form-group input:radio').on('ifChanged', function(event) {
console.log( $(this).val() );
});