Welcome

首页 / 脚本样式 / JavaScript / Layui在Table中使用的Switch更新后,点编辑时无法取得新状态的解决办法。

1、在全局中声明一个tableData全局变量;

2、在table.render配置中增加

,id:"tableIns"
,done:function(){
   tableData = table.cache.tableIns;
}


3、在switch监听中增加

form.on('switch(islinkState)', function(obj){
   var islink = this.checked ? '1' : '0';
   var index  = obj.othis.parents('tr').attr("data-index");
   tableData[index].islink=islink;

})

4、在编辑中

view(this.id).render('article/form', data).done(function(){
   form.val("articleform", data);
   form.render();
   $("#art_classname").val(data.classname);
   $("#art_classid").val(data.classid);
   if(data.ispublic==1) {
       layui.jquery('input[name="ispublic"]').attr('checked', 'checked');
   }
   else
   {
       layui.jquery('input[name="ispublic"]').removeAttr('checked');
   }
   if(data.islink==1) {
       layui.jquery('input[name="islink"]').attr('checked', 'checked');
   }
   else
   {
       layui.jquery('input[name="islink"]').removeAttr('checked');
   }
   form.render('checkbox');
   if(data.artimgs!="")
   {
       var img=data.artimgs.split(",");
       if(img.length>0) {
           $("#pview").attr("src",img[0]);
       }
   }
   saveAction(index);
});


另一种是在加载的页面中加入setTimeout延迟操作

<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<div class="layui-input-block">
<input type="radio" class="lock_open" name="islock" value="0" title="启用" checked="">
<input type="radio" class="lock_close" name="islock" value="1" title="锁定">
</div>
</div>

  ;
  =(data){
    =data;
  }
  .([,,,,,,], (){
    = .,= .,= .,= .,= .,=.;
    
    ((){
      (+.+).();
      .();
    },);
 })