checkbox已设置为checked,页面F12查看元素显示Checked=Checked 但实际未勾选上
错误js
function setValue(obj){
var id = $(obj).attr('id');
var isChecked = $(obj).prop('checked');
var name = $(obj).attr('name');
var allCheckBox = document.getElementsByName(name);
for (var i = 0; i < allCheckBox.length; i++) {
if($(allCheckBox[i]).prop("id") == id){
continue;
}
$(allCheckBox[i]).attr("checked",!isChecked);
}
}
更新正确之后js
function setValue(obj){
var id = $(obj).attr('id');
var isChecked = $(obj).prop('checked');
var name = $(obj).attr('name');
var allCheckBox = document.getElementsByName(name);
for (var i = 0; i < allCheckBox.length; i++) {
if($(allCheckBox[i]).prop("id") == id){
continue;
}
$(allCheckBox[i]).prop("checked",!isChecked);
}
}
原因:jquery调用 attr和prop方法时,若是调用标签上固有的属性时使用prop方法,若是自定义属性使用attr方法
样例:<input type="checkbox" name ="print_size" id="print_size" sign="add" checked="checked"/>
此时,若是获取name id checked等标签固有属性时使用prop方法, 获取sign自定义属性时使用attr方法

浙公网安备 33010602011771号