layer单选框 radio的问题总结

萝らか妹 提交于 2019-12-06 10:31:06

放官方文档:

位置 页面元素-表单;内置模块-表单
属性title可自定义文本
属性disabled开启禁用
设置value="xxx"可自定义值,否则选中时返回的就是默认的on
radio单选框被点击时触发,回调函数返回一个object参数,并携带两个成员:
data.elem radio原始DOM对象
data.value 被点击的radio的value值

官网文档太简洁了,以至于在实际碰到问题时,明明可以一个小时解决,最后却要花费两三个小时,其实说到底还是菜如狗罢了。

在layer渲染过type为radio的input后,会在原始input元素的后面追加一个div,div的内容如下:

<div class="layui-unselect layui-form-radio layui-form-radioed">
<i class="layui-anim layui-icon"></i>
<div>input的title值</div>
</div>

1.获取所选中的单选框的对象和value值
一般情况下,input框有一个id,然后直接找到下一个元素就是当前展示出来的那个div对象了。
即:$("#inputId").next();

input框中添加lay-filter="xxx",即带有lay-filter的input都在渲染范围之内,根据filter的值来区分不同的单选框
var val = $("input[name='xxx']:checked").val()
val即是所选中的框的value值。可在页面初始化时获取,并在获取后进行下一步操作。

 

2.控制多选框的点击事件

如果要对渲染后的单选框做操作,应该是对其后面的div元素进行操作,而不是对input本身。
这个方法就相当于input的点击事件:
form.on("radio(filter)", function(data){
var val = data.value;
});

 

更新渲染
页面加载时,layer将该渲染的元素全部渲染一遍。但有时候数据是动态操作的,需要执行更新渲染才可以

form.render(type, filter)

type :可选。表单的type,如果不选择,则对全部类型的表单刷新一次
可选择的type值:

select 下拉选;

checkbox 多选框(含开关);

radio 单选框。例:

form.render('select');

 

filter :即class="layui-form" 所在元素的lay-filter=“”的值,说白了这个值就是相同的一个或多个input的lay-filter的值,由这个filter值来控制元素的渲染范围
例:

form.render(null, 'test')或form.render('test')  //重新渲染lay-filter值为test的所有元素的全部状态(包含select、checkbox和radio)
form.render('select', 'test1') //重新渲染lay-filter值为test1的所有元素的select状态

注:一般在同一个元素上放置多种状态的挺少的,起码我还没碰到过,所以一般一个元素只放一个状态(即一种框)。等碰到了再回来补

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!