当用户提交表单时,我希望ajax使用以下
检查电子邮件地址是否存在$.post("checkemail.php", {email: email})
取决于我将选择提交或不提交的值(防止默认)
但是表单在返回值之前提交。 我尝试过以下方法:
$.when($.post("inc/checkemail.php", {email: email})).done(function(result) {
// code here
}
然而我似乎无法做到这一点。我做错了什么?
感谢您提前提供任何帮助,你们总是很棒!
答案 0 :(得分:4)
无论帖子返回什么内容,都应该始终停止默认行为。只有在“完成”时才决定提交表格:
$('form').on('submit', function(e) {
e.preventDefault()
$.post('checkemail.php', {email: email})
.done( function(result){
// check response to see if the email does not exist
$('form').off('submit') // We don't want to stop the submission anymore.
$('form').submit()
})
})
编辑另外,请注意$ .post会返回一种延迟对象,因此$ .when调用是不必要的。
答案 1 :(得分:1)
在checkmail.php
回调中放置取决于$.post
响应的代码:
$.post("checkemail.php", {email: email}, function(result){
// "result" = response from checkmail.php
...
});
干杯
答案 2 :(得分:0)
$.post("checkemail.php", {email: email}, function(data, textStatus, jqXHR) {
// this gets executed when the AJAX has finished and had succes.
});