文件上传upload.render小记

本文记录了在使用upload组件时遇到的一个问题,即在查询操作后,文件上传按钮失效。关键在于初始化上传组件应在页面渲染之后进行,以确保所有元素加载完毕。通过调整代码顺序,确保先进行页面渲染,再调用上传按钮的加载方法,成功解决了这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到的问题:

初始化时能正常打开上传,但点击查询后上传按钮失效
在这里插入图片描述

正确代码如下:


if(paramPage>0){
	var curr=paramPage;
}else{
	var curr = 1;	
}
var pageSize = 10;
$(function() {
	find(curr);
})
function find(currs) {
	if(currs!=null){
		curr = currs;
	}
	var examType = $("#examType").val();
	var year = $("#year").val();
	var term = $("#term").val();
	$.ajax({
		url : ctx + "/ScoreRegistration/queryCourse",
		type : "post",
		data : {
			"pageNum" : curr,
			"pageSize" : pageSize,
			"year" : year,
			"term" : term,
			"examType":examType
		},
		dataType : "json",
		async : true,
		contentType : "application/x-www-form-urlencoded",
		success : function(result) {
			if(result.code!="-1"){
				$("#no_data").hide();
				$("#table_div").show();
				$("#t_body_class").html("");
				var courseList = result.data.list;
				for (var i = 0; i < courseList.length; i++) {
					var str = "";
					var inde = ((10*(curr-1))+i+1);
					str += "<tr><td>"+((10*(curr-1))+i+1)+"</td>"
					str += "<td>"+courseList[i].grade+"</td>";
					str += "<td title="+courseList[i].yearTerm+">"+courseList[i].yearTerm+"</td>";
					str += "<td title="+courseList[i].className+">"+courseList[i].className+"</td>";
					str += "<td title="+courseList[i].courseName+">"+courseList[i].courseName+"</td>";
					str += "<td title="+courseList[i].teacherName+">"+courseList[i].teacherName+"</td>";
					str += "<td title="+courseList[i].auditStatus+">"+courseList[i].auditStatus+"</td>";
					if(courseList[i].auditStatus=='未录入'){
						str += "<td>" +"<input type='button' value='录入' class='my-button' οnclick='typeIn("+courseList[i].grade+","+year
						+","+term+","+courseList[i].courseId+","+courseList[i].teacherId+","+courseList[i].classId+","
						+courseList[i].majorId+","+courseList[i].deptId+",\""
						+courseList[i].majorName+"\",\""+courseList[i].deptName+"\",\""+courseList[i].courseName+"\")'>" 
						+"<button type='button' class='layui-btn layui-btn-primary' id='upload_excel_"+inde+"'><i class='layui-icon layui-icon-upload-circle'></i></button>";
					}else if(courseList[i].auditStatus=='录入中'){
						str += "<td>" +"<input type='button' value='录入' class='my-button' οnclick='typeIn("+courseList[i].grade+","+year
						+","+term+","+courseList[i].courseId+","+courseList[i].teacherId+","+courseList[i].classId+","
						+courseList[i].majorId+","+courseList[i].deptId+",\""
						+courseList[i].majorName+"\",\""+courseList[i].deptName+"\",\""+courseList[i].courseName+"\")'>"+"<input type='button' value='提交' class='my-button' οnclick='submitScoreAudit("+courseList[i].id+","+courseList[i].grade+","+year
						+","+term+","+courseList[i].courseId+","+courseList[i].teacherId+","+courseList[i].classId+","
						+courseList[i].majorId+","+courseList[i].deptId+")'>";
					}
					str+="</td></tr>";
					$("#t_body_class").append(str);
					loadLayerEL(inde,courseList[i].grade,year,term,courseList[i].courseId,courseList[i].teacherId,courseList[i].classId,courseList[i].majorId,courseList[i].deptId,courseList[i].majorName,courseList[i].deptName,courseList[i].courseName)
				}
			}else{
				$("#no_data").show();
				$("#table_div").hide();
			}
			layui.use(['laypage', 'layer'], function(){
				var laypage = layui.laypage,
				layer = layui.layer;
				laypage({
					cont:'demo7',
					pages : result.data.pages,
					skip : true,
					curr : curr,
					jump : function(obj, first) {
						newpage = obj.curr;
						if (!first) {
							find(newpage);
						}
					}
				});
	 		})
		}
	});
}
/**
 * 加载layer的依赖
 * @returns
 */
var  files = null;
function loadLayerEL(inde,grade,year,term,courseId,teacherId,classId,majorId,deptId,majorName,deptName,courseName){
	var params = {
	"grade":grade,
	"year":year,
	"term":term,
	"courseId":courseId,
	"teacherId":teacherId,
	"classId":classId,
	"examType":examType,
	"majorId":majorId,
	"deptId":deptId,
	"page":curr
}
	
	layui.use(['element','upload','form'], function(){
		  var element = layui.element;
		  var $ = layui.jquery,upload = layui.upload;
		  /*上传文件*/
		  upload.render({ //允许上传的文件后缀
			    elem: '#upload_excel_'+inde,
			    url: ctx+'/ScoreRegistration/importScholarStudent',
			    accept: 'file', //普通文件,
			    data: params,
			    auto:true,//是否自动上传
			    exts: 'xls|xlsx', //只允许上传excel文件
			    progress: function(n, elem){
			        var percent = n + '%' //获取进度百分比
			        element.progress('#upload_excel_'+inde, percent);
			        console.log(elem); 
			    },
			    done: function(res){//上传完成后回调
			    	deletefile();
			    	if(res.msg=="请求上传接口出现异常"){
			    		layer.msg("请检查上传表格中数据");
			    		return false;
			    	}else{
			    		layer.msg(res.msg,{time:5000});
			    		find(1);
			    	}
			    },
			    choose:function(obj){
			        deletefile();
			        //将每次选择的文件追加到文件队列
			         files = obj.pushFile();
			       }
		  });
	});
}

/**
 * 清除文件
 * @returns
 */
function deletefile(){
	if(null != files){
		for(var i = 0 ; i<Object.keys(files).length;i++){
			delete  files[Object.keys(files)[i]];
		}
		files = null;
	
	}
}

分析错误代码:

$.ajax({
		url : ctx + "/ScoreRegistration/queryCourse",
		type : "post",
		data : {
			"pageNum" : curr,
			"pageSize" : pageSize,
			"year" : year,
			"term" : term,
			"examType":examType
		},
		dataType : "json",
		async : true,
		contentType : "application/x-www-form-urlencoded",
		success : function(result) {
			if(result.code!="-1"){
				$("#no_data").hide();
				var courseList = result.data.list;
				var str = "";
				for (var i = 0; i < courseList.length; i++) {
					var inde = ((10*(curr-1))+i+1);
					str += "<tr><td>"+((10*(curr-1))+i+1)+"</td>"
					str += "<td>"+courseList[i].grade+"</td>";
					str += "<td title="+courseList[i].yearTerm+">"+courseList[i].yearTerm+"</td>";
					str += "<td title="+courseList[i].className+">"+courseList[i].className+"</td>";
					str += "<td title="+courseList[i].courseName+">"+courseList[i].courseName+"</td>";
					str += "<td title="+courseList[i].teacherName+">"+courseList[i].teacherName+"</td>";
					str += "<td title="+courseList[i].auditStatus+">"+courseList[i].auditStatus+"</td>";
					if(courseList[i].auditStatus=='未录入'){
						str += "<td>" +"<input type='button' value='录入' class='my-button' οnclick='typeIn("+courseList[i].grade+","+year
						+","+term+","+courseList[i].courseId+","+courseList[i].teacherId+","+courseList[i].classId+","
						+courseList[i].majorId+","+courseList[i].deptId+",\""
						+courseList[i].majorName+"\",\""+courseList[i].deptName+"\",\""+courseList[i].courseName+"\")'>" 
						+"<button type='button' class='layui-btn layui-btn-primary' id='upload_excel_"+inde+"'><i class='layui-icon layui-icon-upload-circle'></i></button>";
					}else if(courseList[i].auditStatus=='录入中'){
						str += "<td>" +"<input type='button' value='录入' class='my-button' οnclick='typeIn("+courseList[i].grade+","+year
						+","+term+","+courseList[i].courseId+","+courseList[i].teacherId+","+courseList[i].classId+","
						+courseList[i].majorId+","+courseList[i].deptId+",\""
						+courseList[i].majorName+"\",\""+courseList[i].deptName+"\",\""+courseList[i].courseName+"\")'>"+"<input type='button' value='提交' class='my-button' οnclick='submitScoreAudit("+courseList[i].id+","+courseList[i].grade+","+year
						+","+term+","+courseList[i].courseId+","+courseList[i].teacherId+","+courseList[i].classId+","
						+courseList[i].majorId+","+courseList[i].deptId+")'>";
					}else if(courseList[i].auditStatus=='已提交'){
						str += "<td>" +"<input type='button' value='取消提交' class='my-button' οnclick='disScoreAudit("+courseList[i].grade+","+year
						+","+term+","+courseList[i].courseId+","+courseList[i].teacherId+","+courseList[i].classId+","
						+courseList[i].majorId+","+courseList[i].deptId+")'>";
						str += "" +"<input type='button' value='打印' class='my-button' οnclick='printScore("+courseList[i].grade+","+year
						+","+term+","+courseList[i].courseId+","+courseList[i].teacherId+","+courseList[i].classId+","
						+courseList[i].majorId+","+courseList[i].deptId+","+courseList[i].id+",\""
						+courseList[i].majorName+"\",\""+courseList[i].deptName+"\",\""+courseList[i].courseName+
						"\",\""+courseList[i].className+"\",\""+courseList[i].teacherName+"\",\""+courseList[i].courseType+"\")'>";
					}else if(courseList[i].auditStatus=='未审核通过'){
						str += "<td>" +"<input type='button' value='提交' class='my-button' οnclick='submitScoreAudit("+courseList[i].id+","+courseList[i].grade+","+year
						+","+term+","+courseList[i].courseId+","+courseList[i].teacherId+","+courseList[i].classId+","
						+courseList[i].majorId+","+courseList[i].deptId+")'>";
					}else if(courseList[i].auditStatus=='已发布'){
						str += "<td>" +"<input type='button' value='打印' class='my-button' οnclick='printScore("+courseList[i].grade+","+year
						+","+term+","+courseList[i].courseId+","+courseList[i].teacherId+","+courseList[i].classId+","
						+courseList[i].majorId+","+courseList[i].deptId+","+courseList[i].id
						+",\""+courseList[i].majorName+"\",\""+courseList[i].deptName+"\",\""+courseList[i].courseName+
						"\",\""+courseList[i].className+"\",\""+courseList[i].teacherName+"\",\""+courseList[i].courseType+"\")'>";
					}
					str+="</td>";
					loadLayerEL(inde,courseList[i].grade,year,term,courseList[i].courseId,courseList[i].teacherId,courseList[i].classId,courseList[i].majorId,courseList[i].deptId,courseList[i].majorName,courseList[i].deptName,courseList[i].courseName)
				}
				$("#t_body_class").html(str);
				$("#table_div").show();
			}else{
				$("#no_data").show();
				$("#table_div").hide();
			}

  • 代码是渲染页面在后,赋值调用loadLayerEL方法在前,但此时页面的这些值是没有给到的,直接调用上传按钮,此时是不起作用的,需要先给页面渲染,再去调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值