layui文件上传按钮不起作用(动态添加的元素)

背景:
一个下拉框选择不同的下拉框展示不同的页面
不同的页面都有文件上传按钮
选择展示不同的页面,页面的文件上传按钮不起作用
在这里插入图片描述

查资料:
动态添加的元素没有办法渲染layui.upload.render();

分析:
1、页面在选择前,JS里的layui.upload.render()已经执行了
2、layui.upload.render()执行但是并找不到#file_choose元素,因为页面还没有选择
3、 然后页面选择后,layui.upload.render()执行完了,#file_choose元素也没有加上upload属性

layui.upload.render({
    elem: '#file_choose
    accept: 'file',
    url:Constants.baseUrl + 'fileupload/',
    before:function (obj) {
        obj.preview(function (index,file,result) {
            $('#certName').val(file.name);
        });
        layer.load();
    },
    done: function (res, index, upload) {
       $scope.path = res.path;
       layer.closeAll('loading')
    },
    error:function () {
        layer.closeAll('loading');
    }
})

解决办法:
页面选择之后再渲染#file_choose元素,也就是把上面的这段代码加到选择页面代码执行之后
就是在选择页面之后再去渲染页面中的按钮加上文件上传属性

layui.form.on('select(typeFilter)',function (data) {
		if(data.value==1){
			//控制第一个页面展示代码
			//给按钮加layui.upload.render()代码 即上述代码
}
	}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值