游客
layui 数据表初始数据绑定异常-单选框Radio无法正确初始化

在编辑模块需要先加载表单项的原始数据,用异步获取数据后将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,
                     .....
                })
            })


完结!