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 相关文章推荐
jQuery setTimeout()函数使用方法
Apr 07 Javascript
JS中setTimeout()的用法详解
Apr 14 Javascript
用Jquery.load载入页面实现局部刷新
Jan 22 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 Javascript
js 上传文件预览的简单实例
Aug 16 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
Sep 19 Javascript
js判断PC端与移动端跳转
Dec 24 Javascript
判断div滑动到底部的scroll实例代码
Nov 15 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
微信小程序 调用微信授权窗口相关问题解决
Jul 25 Javascript
vue+element-ui+axios实现图片上传
Aug 20 Javascript
JavaScript中的全局属性与方法深入解析
Jun 14 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
phpMyadmin 用户权限中英对照
2010/04/02 PHP
php MessagePack介绍
2013/10/06 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
js 学习笔记(三)
2009/12/29 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
全面理解闭包机制
2016/07/11 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
JavaScript模块详解
2017/12/18 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
js制作提示框插件
2020/12/24 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python实现基于HTTP文件传输实例
2014/11/08 Python
python实现rsa加密实例详解
2017/07/19 Python
python版大富翁源代码分享
2018/11/19 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
中国旅游网站:同程旅游
2016/09/11 全球购物
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
工商企业管理应届生求职信
2013/11/03 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
个人查摆剖析材料
2014/10/16 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
关于Python使用turtle库画任意图的问题
2022/04/01 Python
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS