在编辑模块需要先加载表单项的原始数据,用异步获取数据后将Json对像交给form.val()方法初始化,input 的对像被正常赋值,唯有单选框没有正常赋值,检查数据项均正常获取。原来是这个原因导致的!上代码:
[HTML]
<div class="layui-form-item" pane="">
<label class="layui-form-label">频道状态</label>
<div class="layui-input-block">
<input type="radio" name="IsShow" value="1" title="正常" checked="">
<input type="radio" name="IsShow" value="0" title="隐藏">
</div>
</div>
<div class="layui-form-item" pane="">
<label class="layui-form-label">是否启用</label>
<div class="layui-input-block">
<input type="radio" name="IsUsing" value="1" title="启用" checked="">
<input type="radio" name="IsUsing" value="0" title="关闭">
</div>
</div>
[JS]
layui.use(['element', 'form'], function () {
var element = layui.element;
var form = layui.form;
form.val('ClassEdit', {
.....
"IsShow":1,
"IsUsing":0,
.....
})
})
代码语法以及运行时皆无报错,经仔细分析,插件的工作原理应该是根据Json的键值去匹配form中的radio name 和value,而依据就是键名和name,在html中name的值是字符串,而Json中Key类弄为int ,可能是这个原因影响了插件,于是乎将Json中的value改为字符串尝试,果然大功告成。记录下来,以免日后再次碰到这个问题而浪费时间思考。
[如果Json存于变量中的话,可以如下操作]
var data=d.Data
layui.use(['element', 'form'], function () {
var element = layui.element;
var form = layui.form;
form.val('ClassEdit', {
.....
"IsShow":data.IsShow+"",
"IsUsing":data.IsUsing,
.....
})
})
完结!