Php ajax表单转到另一个页面,而不是停留在同一页面上
我有一个弹出式ajax表单,它不是发送数据并保持在同一页面上,而是发送数据,但从我的表单将我带到send.php文件。为什么呢?我在另一个站点上正确地实现了几乎相同的表单。我不知道我做错了什么 表格:Php ajax表单转到另一个页面,而不是停留在同一页面上,php,jquery,html,ajax,forms,Php,Jquery,Html,Ajax,Forms,我有一个弹出式ajax表单,它不是发送数据并保持在同一页面上,而是发送数据,但从我的表单将我带到send.php文件。为什么呢?我在另一个站点上正确地实现了几乎相同的表单。我不知道我做错了什么 表格: 谢谢 在纯Javascript中,您需要执行以下操作: function sendWithAjax() { var ajax = new XMLHttpRequest(); ajax.open("POST", "send.php", true); $(document).r
谢谢 在纯Javascript中,您需要执行以下操作:
function sendWithAjax() {
var ajax = new XMLHttpRequest();
ajax.open("POST", "send.php", true);
$(document).ready(function(event){
event.preventDefault();
$('#FORMID').ajaxForm({
type: 'POST',
dataType: 'json',
beforeSubmit: function(){
},
success: function(resp){
},
error: function(resp){
}
});
});
然后从输入元素中读取值:
var email = document.getElementById('email').value;
var name = document.getElementById('name').value;
var message = document.getElementById('message').value;
在调用.send()之前,可以在此处验证表单
(可能需要使用escape()函数转义表单元素的内容)
并将它们放入发送方法:
ajax.send("email="+ email +"&name="+ name +"&message="+ message);
并从表单代码中删除完整的表单标记。因此,您不需要提交按钮,因此将其更改为简单按钮:
<input type="text" id="name" name="name" value="" /><br />
<input type="text" id="email" name="email" value="" /><br />
<textarea name="message" cols="4" rows="4" id="message" ></textarea><br />
<input type="submit" value="" id="submit" title="Send!" onclick="javascript:sendWithAjax()"/>
尝试添加以下内容:
$(“#提交”)。单击(函数(){return false;/*停止html表单提交*/})
我相信jquery正在通过ajax发送表单数据,但是您并没有像正常情况那样停止默认的“提交”按钮提交html表单。添加上述代码将停止提交按钮的默认操作(将表单提交到send.php),从而将您留在当前页面上。类似于:
function sendWithAjax() {
var ajax = new XMLHttpRequest();
ajax.open("POST", "send.php", true);
$(document).ready(function(event){
event.preventDefault();
$('#FORMID').ajaxForm({
type: 'POST',
dataType: 'json',
beforeSubmit: function(){
},
success: function(resp){
},
error: function(resp){
}
});
});
希望这会有所帮助。以下是如何使用ajax发送表单(顺便说一句,您没有这样做)我设法让它与该示例一起工作,但我无法确定如何在使用该代码提交之前验证每个输入。。。
<input type="text" id="name" name="name" value="" /><br />
<input type="text" id="email" name="email" value="" /><br />
<textarea name="message" cols="4" rows="4" id="message" ></textarea><br />
<input type="submit" value="" id="submit" title="Send!" onclick="javascript:sendWithAjax()"/>
var response = ajax.responseText;
}
$(document).ready(function(event){
event.preventDefault();
$('#FORMID').ajaxForm({
type: 'POST',
dataType: 'json',
beforeSubmit: function(){
},
success: function(resp){
},
error: function(resp){
}
});
});