出于某种原因,与复选框关联的点击事件在点击时会触发两次,即使复选框中显示的实际“检查”和“取消选中”标记未触发两次。我知道它会触发两次,因为当用户点击复选框时,它会更改旁边隐藏输入字段的值:
<td>
<input id="validity_change_143_validity_address" name="validity_change[143][validity_address]" type="checkbox" value="1" checked="checked">
<input id="csv_or_active_records_143_validity_address" name="csv_or_active_records[143][validity_address]" type="hidden" value="true">
</td>
我尝试了很多不同的事情来阻止。但没有任何作用。我就在这一点上:
$( ".invalidAddrTable").on('click', '#validity_change_143_validity_address', function(e){
console.log(event.target.id+" and "+$(event.target).attr('class'));
if( e.target.id === 'validity_change_143_validity_address' ) {
console.log("Why we get here twice?")
var $input = $(this).next();
val = ($input.val() === "true") ? false : true;
$input.val(val);
}
})
WHy是两次调用的点击事件?