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()代码 即上述代码
}
	}

猜你喜欢

转载自blog.csdn.net/Alive_tree/article/details/100741223