Layui中Jquery动态设置的select标签加载时而正常时而失效问题排查和解决

1.背景
前段使用Layui框架,jQuery动态设置的下拉框select标签,加载时而正常时而失效。
本地调试完全没有问题,但是在服务器运行加载成功和失败的比例五五开。

2.解决
问题原因:Layui的form美化修饰和jQuery的select方法发生冲突,受渲染速度不同影响,最终的select异步加载成功与否也会不同。
解决方法:在使用jquery异步加载完成之后,调用Layui的重新渲染方法,对页面重新渲染

如下:

<script type="text/javascript">
    $(function() {
        init();
    })
    //页面初始化
    function init() {
        $.ajax({
            type: "post",
            url: "http://...",
            timeout : 30000,
            success: function(result) {
                var select = $("select[name=siteId]");
                var site = ${house.siteId}
                    $.each(result.data, function(index, element) {
                        var option = $("<option value='"+element.id+"'>"+
                            element.name+"</option>");
                        select.append(option);	
                        if(site == element.id){
                            option.prop("selected",true)
                        }
                    })
            },
            error: function() {},
            async: false
        });
        //添加下面的代码,重新渲染,可以有效避免加载失效问题
        layui.use('form', function(){
            var form = layui.form;
            form.render();
        });
    }
</script>

3.总结:
ajax改成同步请求!!!!!然后form.render()ajax改成同步请求!!!!!然后form.render()

转自

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值