使用layui做表單處理的時(shí)候需要多次切換radio的選中項(xiàng),使用attr("checked","checked");后再使用form.render()更新渲染發(fā)現(xiàn)不生效,剛開始以為是form.render()渲染的問題,后來發(fā)現(xiàn)改成 prop('checked',true);就好了

//無效
$("input[name=sex][value='男']").attr("checked","checked");
form.render();
//生效
$("input[name=sex][value='男']").prop("checked",true);
form.render();
使用過程發(fā)現(xiàn) $("input[name='sex']:eq(0)").attr("checked", 'checked'); 這種寫法初始化賦值并加上form.render()是可以更新渲染的,但是如果多次切換的話會(huì)造成input的值切換成功,但是layui展示渲染失敗(打印值是正確的,按鈕顯示沒有切換過來),而改成prop設(shè)置屬性值則多次更新也沒有問題。
得出結(jié)論:
html 自帶屬性請(qǐng)用prop()方法,自定義屬性用 attr() 方法,同時(shí)具有 true 和 false 兩個(gè)屬性的屬性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()
并且prop的屬性值true,false請(qǐng)不要加"",如prop("checked","true");這種寫法依舊不生效
同時(shí)可以使用prop設(shè)置多個(gè)屬性
$("input[name=sex][value='男']").prop({"checked":false,"disabled":true});
原文作者技術(shù)博客:http://www.itdecent.cn/u/ac4daaeecdfe