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方法

posted @ 2019-08-20 10:09  十二A~  阅读(464)  评论(0)    收藏  举报