Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使用Rails 2.3.8表单帮助器进行AJAX提交?_Jquery_Ruby On Rails - Fatal编程技术网

Jquery 如何使用Rails 2.3.8表单帮助器进行AJAX提交?

Jquery 如何使用Rails 2.3.8表单帮助器进行AJAX提交?,jquery,ruby-on-rails,Jquery,Ruby On Rails,我正在将Rails 2.3.8应用程序从原型切换到jQuery。我不再使用RJS,这意味着我将远程表单切换为普通的旧表单 但是,这些表单中的提交按钮并没有进行AJAX调用。他们在做常规工作 我在application.js中有一个jQuery函数: jQuery.fn.submitWithAjax = function () { this.submit(function () { alert("submitting"); $.post($(this).attr('ac

我正在将Rails 2.3.8应用程序从原型切换到jQuery。我不再使用RJS,这意味着我将远程表单切换为普通的旧表单

但是,这些表单中的提交按钮并没有进行AJAX调用。他们在做常规工作

我在application.js中有一个jQuery函数:

jQuery.fn.submitWithAjax = function () {  
  this.submit(function () {  
    alert("submitting");
    $.post($(this).attr('action'), $(this).serialize(), null, "script");
    return false;  
  });  
};
我在我的表格上说:

// Search
$('#lookup').submitWithAjax();

我需要在按钮上调用它吗?我缺少了一些简单的部分,可以防止所有的部分都落在正确的位置。

你需要
$
围绕
这个
提交
。此外,根据未声明的约定,您可能应该将其包装在$。左右,这样您就可以将事件绑定到多个元素

$.fn.submitWithAjax = function () {  
    $(this).each(function(){
        $(this).submit(function () {
            $.post($(this).attr('action'), $(this).serialize(), null, "script");
            return false;
          });
    });
};