在我编写邮件时(在点击提交按钮之前),是否有任何方法可以检查我的数据库中是否存在邮件(以注册形式)。
这是我的javascript函数,当我点击提交按钮时,它运行良好:
<script type="text/javascript">
$(document).ready(function(){ //newly added
$('#_submit').click(function() {alert('in');
var emailVal = $('#mail').val(); // assuming this is a input text field
$.post('checkemail.php', {'mail' : emailVal}, function(data) {
if(data=='exist') return false;
else $('#form1').submit();
});
});
});
</script>
但我想在提交之前验证邮件(我没有点击任何按钮)
答案 0 :(得分:2)
我相信#_submit
是一个提交按钮。在这种情况下,您的<from>
将在不等待ajax调用完成的情况下提交,因为这是异步任务。
为了解决这个问题,您应该默认阻止<form>
提交,并且在ajax调用完成后,根据响应决定是否提交表单。
$(document).ready(function() { //newly added
$('#_submit').click(function(e) {
e.preventDefault(); // prevent default submission
alert('in, submission prevented - waiting for ajax response');
var emailVal = $('#mail').val(); // assuming this is a input text field
$.post('checkemail.php', {
'mail': emailVal
}, function(data) {
if (data == 'exist')
return false;
else
$('#form1').submit();
});
});
});
或者您只需使用type="button"
按钮即可触发<form>
提交。
答案 1 :(得分:-2)
类似的东西
$.ajax(url).done(function(response) {
if (response === true) {
$(form).submit();
} else {
console.log("not allowed");
});