码迷,mamicode.com
首页 > Web开发 > 详细

jquery.uploadify+jquery.form异步提交那点事

时间:2015-06-17 21:47:37      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!