将服务器响应传递给jquery插件中的回调函数

时间:2011-01-09 18:10:47

标签: javascript jquery ajax jquery-plugins

所以基本上,我有一个像下面这样的小插件,它的作用是用jquery方法提交表单。

(function($){
 $.fn.ajaxSubmit = function(options){
  var defaults = {
   url:'',
   success:function(){},
   error:function(){}
  },
  o = $.extend({},defaults, options);
  return this.each(function(){
   var $this=$(this);
   $this.submit(function(e){
    $.post(o.url,$this.serialize() ,
    function(response){
     if(response.status == 'success'){
      o.success.call(this);
     }
     else if(response.status == 'error'){
      o.error.call(this);
     }
    },'json');
    return false;
   });
  });
 }
})(jQuery);

这就是它的名字

$('#form').ajaxSubmit({
  url:'www.myownwebsite.com/play/processform',
  success:function(response){alert(response.status)},
  error:function(response){alert(response.status);}
 });

问题是,当脚本执行时,我收到错误“响应未定义”。显然我知道什么是错的,但我怎么能正确地做到这一点?

1 个答案:

答案 0 :(得分:1)

你试过o.success.call(this,response);

吗?