Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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/jquery/72.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
Javascript 通过AJAX提交表单而不重新加载页面_Javascript_Jquery_Ruby On Rails_Ruby_Ajax - Fatal编程技术网

Javascript 通过AJAX提交表单而不重新加载页面

Javascript 通过AJAX提交表单而不重新加载页面,javascript,jquery,ruby-on-rails,ruby,ajax,Javascript,Jquery,Ruby On Rails,Ruby,Ajax,是否有任何方法可以在不重新加载页面的情况下向服务器提交表单以获得AJAX响应。我可以用提交按钮来做这件事。但是当点击链接时,我该如何做呢 我了解了一种javascript方法来实现这一点 var form = document.getElementById('myForm'); form.submit(); 但是上面的代码会重新加载页面。我开始知道,我们可以用jquery实现这一点,但如何实现呢 请注意,我正在使用RubyonRails3.0.4开发我的应用程序,我使用的是RailsAjax,

是否有任何方法可以在不重新加载页面的情况下向服务器提交表单以获得AJAX响应。我可以用提交按钮来做这件事。但是当点击链接时,我该如何做呢

我了解了一种javascript方法来实现这一点

var form = document.getElementById('myForm');
form.submit();
但是上面的代码会重新加载页面。我开始知道,我们可以用jquery实现这一点,但如何实现呢

请注意,我正在使用RubyonRails3.0.4开发我的应用程序,我使用的是RailsAjax,如下所示

<%= form_for @search, :remote => true, :url => request_path, :html => {:method => :get, :id => :my_form} do |f| %>
true,:url=>request_path,:html=>{:method=>:get,:id=>:my_form}do | f |%>
如果您有任何帮助,我们将不胜感激。

您可以用它来撰写ajax文章

摘自文件:

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
$('#target').submit(function() {
  alert('Handler for .submit() called.');
  return false;
});
你也可以使用

摘自文件:

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
$('#target').submit(function() {
  alert('Handler for .submit() called.');
  return false;
});
现在,当表单提交时,消息将发出警报。这种情况会发生 在实际提交之前,因此我们可以通过 对事件对象调用.preventDefault()或返回false 从我们的处理者那里

您可以组合2,如
Raminson
所示:

$('#target').submit(function() {
    .preventDefault()
    $.ajax({
        type: 'POST',
        url: url,
        data: data,
        success: success,
        dataType: dataType
    });
});
您可以使用
事件
对象的方法:

$('#myForm').submit(function(event){
   event.preventDefault(); 
   $.ajax({
     ...
   });
})
如果调用此方法,则不会触发事件的默认操作


如果问题是使用form.submit()重新加载页面,请尝试:


我知道我参加聚会有点晚了,作为上述Anwser的替代方案,您可以使用用于轻松更新ajax表单的

如果您使用它,最简单的JS代码版本如下所示

$('#myform').ajaxForm(function() { 
  success: alert('success');
});
您可以使用更多选项来配置它。 表单提交到的url与表单的
action
属性相同

这也可以改变

根据我的经验,您也不需要
preventDefault()
submit,它会帮您完成


无论如何,如果你觉得方便的话,这是解决你问题的另一个选择

我就是通过使用这段代码来实现的。无需在submit中定义函数

$('#myform').submit();

也许你应该把
事件放在preventDefault()中语句来防止默认页面刷新。您的第二个选项非常适合我。我刚刚编写了您提供的解决方案的一部分,即
'$('#target')。submit()不知道如何,但它只是按照我想要的方式为我工作。无需调用
.preventDefault()。
正确答案是弗朗索瓦·瓦尔的答案,这个答案完全是错误的,绿色的检查是误导性的。你能移动绿色支票吗?