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

-
//無效
-
$("input[ name=sex][value='男']").attr("checked","checked");
-
form.render();
-
//生效
-
$("input[ name=sex][value='男']").prop("checked",true);
-
form.render();
使用過程發現 $("input[name='sex']:eq(0)").attr("checked", 'checked'); 這種寫法初始化賦值並加上form.render()是可以更新渲染的,但是如果多次切換的話會造成input的值切換成功,但是layui展示渲染失敗(打印值是正確的,按鈕顯示沒有切換過來),而改成prop設置屬性值則多次更新也沒有問題。
得出結論:
html 自帶屬性請用prop()方法,自定義屬性用 attr() 方法,同時具有 true 和 false 兩個屬性的屬性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()
並且prop的屬性值true,false請不要加"",如prop("checked","true");這種寫法依舊不生效
同時可以使用prop設置多個屬性
$("input[name=sex][value='男']").prop({"checked":false,"disabled":true});