layedit无法正常使用,无法弹出layedit以及获取不到数据问题

问题

页面中弹出layedit时只能第一次弹出,后面弹不出来,而且在父页面获取不到编辑完的值

解决:

1让页面模板加载完成后再去初始化layedit,从而保证layedit每次都能正常弹出

2初始化时记录当前编辑器的id,将其作为表单元素提交时传给父页面

3.父页面根据收到的编辑器id获取内容

代码

父页面代码

    // 添加
    function add() {
      admin.popup({
        title: '添加'
        , area: ['550px', '550px']
        , id: 'LAY-popup-content-add'
        , success: function (layero, index) {
          view(this.id).render('otherInfo/notice/form').done(function () {
              form.render(null, 'layuiadmin-app-form-list');
            //监听提交
            form.on('submit(layuiadmin-app-form-submit)', function (data) {
              var field = data.field; //获取提交的字段

                field.content = layedit.getContent(field.index);//关键代码

              admin.req({
                url: layui.setter.api + 'm-notice'
                , type: 'post'
                , data: field
                , done: function (result) {
                  layer.msg(result.msg);
                  layui.table.reload('LAY-app-content-list'); //重载表格
                  layer.close(index); //执行关闭
                }
              });
            });
          });
        }
      });
    }

弹出页代码

关键代码   

lay-done="init()" 加载完执行init 初始化layedit

init 中将当前layedit的索引值保存到隐藏表单中,提交时传给父页面,父页面可以根据index取出内容


<div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list"
  style="padding: 20px 30px 0 0;">
  
  <div class="layui-form-item">
    <label class="layui-form-label" style=' width: 40px;' >内容</label>
    <div class="layui-input-inline" style="float:left;width:80%;">
      <script type="text/html" template lay-done="init()">
      <textarea id='demo' type="text" name="content"  placeholder="" autocomplete="off" class="layui-input" style='width:500px;height:245px;'>{{ d.params.content || '' }}</textarea>
    </script>
      
    </div>
  </div>
  <script type="text/html" template>
      <input type="hidden" name="id" value="{{ d.params.id || '' }}">
    </script>
  <input type="hidden" name="index" id="index" value="1">
  <div class="layui-form-item">
    <label class="layui-form-label"></label>
    <div class="layui-input-inline">
      <input type="button" lay-submit lay-filter="layuiadmin-app-form-submit" value="确认" class="layui-btn">
    </div>
  </div>
</div>

<script>

    layui.use(['layedit','form'], function () {


    });

</script>
<script>
    function init() {
        layui.use(['layedit','form'], function () {
            var $ = layui.$;
            var layedit = layui.layedit;
            var index = layedit.build('demo');
            $("#index").val(index)
        });
    }
</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysnownet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值