标签:
jquery.uploadify+jquery.form中使用ajaxSubmit提交时没有走提交后的Success事件,一点提交直接Post过去了,然后就结束了,也没走提交完后的事件。
用火狐找了后发现 TypeError: $.handleError is not a function
提交时出现:TypeError: $.handleError is not a function
因为$.handleError 只在jquery-1.4.4之前的版本中存在,jquery-1.6 ,1.7和1.8中都没有这个函数了,因此在1.4.4中将这个函数复制到了jquery.uploadify.js中,问题解决方法
(function($) { jQuery.extend({ handleError: function(s, xhr, status, e) { if (s.error) { s.error.call(s.context || s, xhr, status, e); } if (s.global) { (s.context ? jQuery(s.context) : jQuery.event).trigger("ajaxError", [xhr, s, e]); } }, httpData: function(xhr, type, s) { var ct = xhr.getResponseHeader("content-type"), xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0, data = xml ? xhr.responseXML : xhr.responseText; if (xml && data.documentElement.tagName == "parsererror") throw "parsererror"; if (s && s.dataFilter) data = s.dataFilter(data, type); if (typeof data === "string") { if (type == "script") jQuery.globalEval(data); if (type == "json") data = window["eval"]("(" + data + ")"); } return data; } }); })(jQuery);
同时也解决了提交后的json返回的问题
有的返回:<pre>{"IsSuccess":1,"Message":"操作成功"}</pre>
解决方法:返回时用: return Json(new { IsSuccess = flag, Message = message }, "text/html");
备注用参考方法:
$('#form1').ajaxSubmit(function (data) { alert(data) var result = data.replace("<pre>", ""); result = result.replace("</pre>", ""); data = (new Function("", "return " + result))(); if (data.IsSuccess == 1) { alert("保存成功"); return false; } else if (data.IsSuccess == 0) { alert(data.Message); } else { alert(data.Message); } });
其中:var result = data.replace("<pre>", "");
result = result.replace("</pre>", "");
data = (new Function("", "return " + result))();
可有可无,某种情况下你很需要它
jquery.uploadify+jquery.form异步提交那点事
标签:
原文地址:http://blog.csdn.net/gulijiang2008/article/details/46535439