Javascript 通过AJAX提交表单而不重新加载页面
是否有任何方法可以在不重新加载页面的情况下向服务器提交表单以获得AJAX响应。我可以用提交按钮来做这件事。但是当点击链接时,我该如何做呢 我了解了一种javascript方法来实现这一点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,
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()中在提交处理程序中使用code>语句来防止默认页面刷新。您的第二个选项非常适合我。我刚刚编写了您提供的解决方案的一部分,即'$('#target')。submit()代码>不知道如何,但它只是按照我想要的方式为我工作。无需调用.preventDefault()。
正确答案是弗朗索瓦·瓦尔的答案,这个答案完全是错误的,绿色的检查是误导性的。你能移动绿色支票吗?