layui表单元素radio,checked,select不显示渲染

爱被打了一巴掌 2023-10-09 20:32 133阅读 0赞

1.问题描述
使用layui框架的时候,不知道怎么回事单选框,复选框不显示。
在这里插入图片描述
2.为什么表单不显示?

当你使用表单时,layui 会对 select、checkbox、radio 等原始元素隐藏,从而进行美化修饰处理。但如果您的表单元素是动态添加的,那么在组件初始加载的时候是无法读取到的。

3.解决方法

只需执行一个视图渲染的实例即可(在scprit标签中写)

  1. layui.use('form', function(){
  2. let form = layui.form;
  3. form.render(); //更新所有form表单
  4. // form.render('select','aihao');
  5. //form.render('组件名','lay-filter名')
  6. });

同理的还有 element 模块

4.具体操作(可以更新整个表单,也可以更新单个组件)

  • 我是更新整个form表单

4.1在select,radio,checkbox等组件上记得要加上 lay-filter=” “,用于在js中做渲染
在这里插入图片描述
4.2.对form表单的组件进行渲染

  1. layui.use('form', function(){
  2. let form = layui.form;
  3. form.render(); //更新所有form表单
  4. // form.render('select','aihao');
  5. //form.render('组件名','lay-filter名')
  6. });

这段代码加在 动态加入的代码后面,如下所示

  1. $("#person_info").click(function (){
  2. // 清空内容
  3. $(".layui-card-body").empty();
  4. // 发送ajax请求 展示个人信息
  5. $.ajax({
  6. url:"/users/detail",
  7. type:"GET",
  8. // data:"username="+username+"&password="+password,
  9. // data:{"username": username, "password": password}, 不需要发送请求
  10. dataType:"JSON",
  11. success:function (json){
  12. if (json.state == 200){
  13. let html = ' <!-- 给容器追加 class="layui-form-pane",即可显示为方框风格 -->\n' +
  14. ' <form class="layui-form layui-form-pane" action="">\n' +
  15. '\n' +
  16. ' <div class="layui-form-item">\n' +
  17. ' <label class="layui-form-label">用户名</label>\n' +
  18. ' <div class="layui-input-inline">\n' +
  19. ' <input value="#{username}" type="text" name="username" placeholder="" lay-verify="required" autocomplete="off" class="layui-input">\n' +
  20. ' </div>\n' +
  21. ' </div>\n' +
  22. ' <div class="layui-form-item">\n' +
  23. ' <label class="layui-form-label">密码</label>\n' +
  24. ' <div class="layui-input-inline">\n' +
  25. ' <input value="#{password}" type="password" name="password" placeholder="" lay-verify="required" autocomplete="off" class="layui-input">\n' +
  26. ' </div>\n' +
  27. '<!-- <div class="layui-form-mid layui-text-em">请务必填写用户名</div>-->\n' +
  28. ' </div>\n' +
  29. '\n' +
  30. ' <div class="layui-form-item">\n' +
  31. ' <div class="layui-inline">\n' +
  32. ' <label class="layui-form-label">邮箱</label>\n' +
  33. ' <div class="layui-input-inline">\n' +
  34. ' <input value="#{email}" type="text" name="email" lay-verify="email" autocomplete="off" class="layui-input">\n' +
  35. ' </div>\n' +
  36. ' </div>\n' +
  37. ' </div>\n' +
  38. '\n' +
  39. ' <div class="layui-form-item">\n' +
  40. ' <div class="layui-inline">\n' +
  41. ' <label class="layui-form-label">电话号码</label>\n' +
  42. ' <div class="layui-input-inline layui-input-wrap">\n' +
  43. ' <input value="#{telephone}" type="tel" name="telephone" lay-verify="required|phone" autocomplete="off" lay-reqtext="请填写手机号" lay-affix="clear" class="layui-input demo-phone">\n' +
  44. ' </div>\n' +
  45. ' </div>\n' +
  46. ' </div>\n' +
  47. '\n' +
  48. ' <div class="layui-form-item">\n' +
  49. ' <label class="layui-form-label">爱好</label>\n' +
  50. ' <div class="layui-input-inline">\n' +
  51. ' <select name="interest" lay-filter="aihao">\n' +
  52. ' <option value=""></option>\n' +
  53. ' <option value="0">写作</option>\n' +
  54. ' <option value="1" selected>阅读</option>\n' +
  55. ' <option value="2">游戏</option>\n' +
  56. ' <option value="3">音乐</option>\n' +
  57. ' <option value="4">旅行</option>\n' +
  58. ' </select>\n' +
  59. ' </div>\n' +
  60. ' </div>\n' +
  61. ' <div class="layui-form-item" pane>\n' +
  62. ' <label class="layui-form-label">性别</label>\n' +
  63. ' <div class="layui-input-block">\n' +
  64. ' <input type="radio" name="sex" value="男" title="男" checked>\n' +
  65. ' <input type="radio" name="sex" value="女" title="女">\n' +
  66. ' </div>\n' +
  67. ' </div>\n' +
  68. ' <div class="layui-form-item" pane>\n' +
  69. ' <label class="layui-form-label">超级管理员</label>\n' +
  70. ' <div class="layui-input-block">\n' +
  71. ' <input type="radio" name="admin" value="男" title="是" checked>\n' +
  72. ' <input type="radio" name="admin" value="女" title="否">\n' +
  73. ' <input type="radio" name="admin" value="禁" title="禁用" disabled>\n' +
  74. ' </div>\n' +
  75. ' </div>\n' +
  76. ' <div class="layui-form-item">\n' +
  77. ' <div class="layui-inline">\n' +
  78. ' <label class="layui-form-label">创建时间</label>\n' +
  79. ' <div class="layui-input-block">\n' +
  80. ' <input value="#{createdTime}" type="text" name="createdtime" id="date1" autocomplete="off" class="layui-input">\n' +
  81. ' </div>\n' +
  82. ' </div>\n' +
  83. ' <div class="layui-inline">\n' +
  84. ' <label class="layui-form-label">修改时间</label>\n' +
  85. ' <div class="layui-input-inline">\n' +
  86. ' <input value="#{modifiedTime}" type="text" name="modifiedtime" autocomplete="off" class="layui-input">\n' +
  87. ' </div>\n' +
  88. ' </div>\n' +
  89. ' </div>\n' +
  90. '\n' +
  91. '\n' +
  92. ' <div class="layui-form-item layui-form-text">\n' +
  93. ' <label class="layui-form-label">个性签名</label>\n' +
  94. ' <div class="layui-input-block">\n' +
  95. ' <textarea placeholder="请输入内容" class="layui-textarea">#{
  96. signature}</textarea>\n' +
  97. ' </div>\n' +
  98. ' </div>\n' +
  99. ' <div class="layui-form-item">\n' +
  100. ' <button class="layui-btn" lay-submit lay-filter="demo2">确认</button>\n' +
  101. ' <button type="reset" class="layui-btn layui-btn-primary">重置</button>\n' +
  102. ' </div>\n' +
  103. ' </form>'
  104. // 拿到上面追加html的内容
  105. html = html.replace(/#{
  106. username}/g,json.data.username)
  107. html = html.replace(/#{
  108. password}/g,json.data.password)
  109. html = html.replace(/#{
  110. email}/g,json.data.email)
  111. html = html.replace(/#{
  112. telephone}/g,json.data.telephone)
  113. html = html.replace(/#{
  114. createdTime}/g,json.data.createdTime)
  115. html = html.replace(/#{
  116. modifiedTime}/g,json.data.modifiedTime)
  117. html = html.replace(/#{
  118. signature}/g,json.data.signature)
  119. // html = html.replace("#{email}",json.data.email==null ? "" : json.data.email)
  120. // html = html.replace("#{telephone}",json.data.telephone==null ? "" :json.data.telephone)
  121. $(".layui-card-body").append(html)
  122. // 选择器
  123. // if (json.data.gender != null){
  124. // let radio = json.data.gender ==0 ? $("#gender-female") : $("#gender-male")
  125. // radio.prop("checked","checked")
  126. // } else {
  127. // // 性别选项默认不选
  128. // $("input[name='inlineRadioOptions']").attr('checked',false);
  129. // }
  130. layui.use('form', function(){
  131. let form = layui.form;
  132. form.render(); //更新所有form表单
  133. // form.render('select','aihao');
  134. //form.render('组件名','lay-filter名')
  135. });
  136. }else {
  137. alert("" + json.message)
  138. }
  139. },
  140. error:function (xhr){
  141. alert("点击用户信息时产生未知的异常"+xhr.status)
  142. }
  143. });
  144. })

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,133人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Layui关联

    开发工具与关键技术:MVC 作者:文泽钦 撰写时间:2019年 6 月 17 日 现在我们做一个layui表单关联,什么叫表单关联呢,比如有两个layui表格,把第一

    相关 Layui验证

    1:引用layui的两个文件: 2:因为是表单验证,所以只有在表单里面才起效果,先来布局:首先,放一个最外层的盒子把所有元素包裹起来,容易布局,引用layui的一个类:‘ay