统计
  • 建站日期:2021-03-10
  • 文章总数:687 篇
  • 评论总数:723 条
  • 分类总数:10 个
  • 最后更新:12月1日
文章 前端知识

解决layui前端动态设置radio、checkbox默认选项的解决方案

程序员阿鑫
首页 前端知识 正文


解决layui前端动态设置radio、checkbox默认选项的解决方案
-程序员阿鑫-带你一起秃头!
-第1
张图片

前几天接触一个二次开发,后台UI用的是layui框架,程序原来的TAG标签设置中自由输入的,想修改为单选。这样子的功能用于,一个产品属于两种分类的作法。第一种就是系统自带的产品分类,第二种使用标签来实现。然尔一个产品并不需要同时属于两个以上的标签,所以二次开发修改为单选radio,而不是多选checkbox。

不过本文作出的动态设置选中状态单选与多选的作法是一致的。

在前端模板文件中,普通用到的是使用<if condition=””></if>来作判断。但是奇怪的就是layui并不能识别。

第一次尝试:

<input class='layui-input' type='radio' name='tag' title='正常' value='正常' <if condition="">checked</if>>

发现在input包括中无法解析到if判断语句;当然在普通情况下是可以的,中不过程序使用了layui,因为layui通过js识别所有表单元素,重新编译了。所以在js的重新编译中无法识别原本不属于表无素材的标签。

第二次尝试:

<if condition="">

<input class='layui-input' type='radio' name='tag' title='正常' value='正常' checked>

<else/>

<input class='layui-input' type='radio' name='tag' title='正常' value='正常'>

</if>

以上代码确定可以选中状态,但随之又有其它问题随之而来,选中的与未选中的两个均会显示出来,为什么呢?

原因还是在于layui遍历form里的表单元素,并不会因if语句的存在而作出最终结果。而是识别到有两个input。

第三次尝试,不用radio,不就是单选吗?下拉单项也是可以的,使用<select>又测试了一番。同样会出现以上两个问题。

无办法下只能求助于神奇的百度给出了这样的结果;

$("input[name=tag][value=正常]").prop("checked","true");

form.render();

prop() 方法设置或返回被选元素的属性和值。

当该方法用于返回属性值时,则返回第一个匹配元素的值。

当该方法用于设置属性值时,则为匹配元素集合设置一个或多个属性/值对。

render()就是重新渲染对象;

看到这里很多朋友以为问题已经得到解决了,其实问题才刚刚开始。不是提示form对象找不到,就是提示form中找不到render()方法。为什么呢,整套程序不是doem,它还整合了很多其它的框架和插件,调作起来并不像官方给出的这么直接。

form.render();

$form.render();

form().render();

.layui.form().render();
……

通通试了一篇,还是不行,这东西就有这么折腾。累了中途休息一下。

一觉睡醒,阔然开朗。先来看看完成后的代码。

thistag="{$info.tag}";//读后台数据值

var mytag=new Array("无","第一项","第二项","第三项","第四项","第五项");//所有单选项目

cntag="";

for(j = 0,len=mytag.length; j < len; j++) { //遍历数组

if(thistag==mytag[j]){ //判断是否选中

cntag+="<input class='layui-input' type='radio' name='tag' id='tag' title='"+newtit+"' value='"+mytag[j]+"' checked>";

}else{

cntag+="<input class='layui-input' type='radio' name='tag' id='tag' title='"+newtit+"' value='"+mytag[j]+"' >";

}

}

$("#cntag").html(cntag); //打印到网页中显示最终效果

优点:只读一次后面数据;

简化:就算单选项很多,只需写在一个数组中即可。

简单:只需写一次判断语句;

原理既然是前端使用,多用js,少用<if><php>这些php后端定义的标签。

我不太会使用格式嵌套代码来写,不然代码会显示得好看一些。

以上是《解决layui前端动态设置radio、checkbox默认选项的解决方案》的全部内容,

感谢您对程序员阿鑫博客的支持!

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
这篇文章最后更新于2021-1-8,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
今天整理了500套精美Logo样机模板直接套用
« 上一篇
手机虚拟机-VMOS Pro v1.1.33绿化版
下一篇 »
为了防止灌水评论,登录后即可评论!
注册登录

HI ! 请登录
注册会员,享受下载全站资源特权。
登陆 注册
社交账号登录

IP地址

热门文章

1
抖音无限礼物模拟小工具分享
2
QQ假红包引流QQ群教程及代码
4
卡QQ永久大会员方法

最新文章

标签