ajax上传时参数提交不更新等相关问题


Posted in Javascript onDecember 11, 2012

先前,我从网上下载了一个jQuery的Ajax上传插件,网页的左侧是上传分类,想要实现的一个功能是如此这样的:我本来是打算在服务端根据上传分类建立不同的文件夹来保存文件的,因此这个就需要传一个上传分类参数给后台。这些上传分类是从数据库读出,用repeater生成的。当点击其中一个分类时就给他设置一个样式,并且将这个分类的名字保存到一个变量uploadCatlog中。我可以取到分类并传给后台,但是很奇怪的是只有第一次是正确的,以后的每次参数都不更新。其实在上传插件的onComplete回调函数中也用到了uploadCatlog,它的值也已经更新了。我感觉好像这个上传插件只在第一次点击的时候实例化并将参数传给后台,所以以后值都是不变的,应该怎么解决这个问题呢?下面是我的js代码细节:
JavaScript code:

<script type="text/javascript"> 
$(function () { 
var uploadCatlog; 
//设置母版页导航栏的当前选中样式 
$("#menu .nav5").addClass("menu_active").siblings().removeClass("menu_active"); 
//生成类别菜单样式和导航菜单 
$("#kllst li").click(function () { 
$(this).addClass("currentli").siblings().removeClass(); 
uploadCatlog = $(this).text(); 
}); 
var btnUpload = $('#upload'); 
var status = $('#status'); 
btnUpload.click(function () { 
if (uploadCatlog == undefined) { 
status.text("必须先选择上传文件的类别!").addClass('error'); 
return false; 
} 
new AjaxUpload(btnUpload, { 
action: 'handler/doUpload.ashx', 
name: 'uploadfile', 
onSubmit: function (file, ext) { 
if (!(ext && /^(doc|docx|xls)$/.test(ext))) { 
status.text('只支持WORD,EXCEL格式上传!').addClass('error'); 
return false; 
} 
status.text('正在上传,请稍候...'); 
}, 
data: { "catlog": uploadCatlog }, 
onComplete: function (file, response) { 
status.text('').removeClass('error'); 
if (response == "success") { 
var fimgtype; 
if (file.indexOf(".doc") != -1 || file.indexOf(".docx") != -1) { 
fimgtype = "word"; 
} 
if (file.indexOf(".xls") != -1) { 
fimgtype = "excel"; 
} 
$('<li></li>').appendTo('#files').html('<img src="images/' + fimgtype + '.png" alt="" /><br />[' + uploadCatlog + ']' + file).addClass('success'); 
} else { 
$('<li></li>').appendTo('#files').text(file).addClass('error'); 
} 
} 
}); 
}); 
}); 
</script>

后来找到了一个解决方案,那就是:创建实例后就不会变了,可以在onSubmit回调函数中调用SetData方法设置动态参数,如下的代码及注释详情:
JavaScript code:
//可以使用这些方法来配置AJAX的上传
var upload = new AjaxUpload(‘#div_id',{action: ‘upload.php'});
//例如当用户选择了一些东西,设置一些参数
upload.setData({ ”catlog”:
ajax的上传参数提交,总是会因为各种各样的错误而出现问题,但是如何来解决问题,怎样使用最好的方法来解决问题,是个值得深究的难题,要想很好的解决编程过程中出现的问题,还是需要自己不断的钻研和学习!
Javascript 相关文章推荐
js 浮动层菜单收藏
Jan 16 Javascript
js中更短的 Array 类型转换
Oct 30 Javascript
jq选项卡鼠标延迟的插件实例
May 13 Javascript
jQuery ajax调用WCF服务实例
Jul 16 Javascript
纯javascript实现分页(两种方法)
Aug 26 Javascript
javascript数组去重方法分析
Dec 15 Javascript
Bootstrap实现提示框和弹出框效果
Jan 11 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 Javascript
JS高阶函数原理与用法实例分析
Jan 15 Javascript
微信小程序在text文本实现多种字体样式
Nov 08 Javascript
vue props 一次传多个值实例
Jul 22 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
Aug 27 Javascript
jQuery(非HTML5)可编辑表格实现代码
Dec 11 #Javascript
jQuery使用数组编写图片无缝向左滚动
Dec 11 #Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
Dec 10 #Javascript
ajax不执行success回调而是执行了error回调
Dec 10 #Javascript
解决js正则匹配换行问题实现代码
Dec 10 #Javascript
解决jquery异步按一定的时间间隔刷新问题
Dec 10 #Javascript
怎样在JavaScript里写一个swing把数据插入数据库
Dec 10 #Javascript
You might like
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
JS动画效果代码3
2008/04/03 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
详解webpack打包vue时提取css
2017/05/26 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
从vue源码看props的用法
2019/01/09 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
Python面向对象特殊成员
2017/04/24 Python
python实现京东秒杀功能
2018/07/30 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
python MD5加密的示例
2020/10/19 Python
家庭教育先进个人事迹材料
2014/01/24 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
大学四年个人自我小结
2014/03/05 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
高中教师个人总结
2015/02/10 职场文书
2016年教师节感言
2015/12/09 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android