JavaScript执行后返回false继续
问题描述:
我有以下代码来验证密码匹配和电子邮件存在ajax调用。 返回false后代码继续执行.`如果没有电子邮件ID,emailexist函数返回0,如果电子邮件ID存在,则返回1。JavaScript执行后返回false继续
在表单提交
<form action="/home" method="post" onsubmit="return validateform();">
function validateemail(){
var email_id = $("#email").val();
if(email_id)
{
$.ajax({
type: 'post',
url: '/emailexist',
data: {
email:email_id,
},
success: function (response) {
if(response== 1)
{
$("#email_status").html("email already exist");
return false;
}
else if(response == 0){
return true;
}
}
});
}
function validatepassword()
{
var pass = $("#password").val();
var cofirmpass = $("#confirmpassword").val();
if(pass != cofirmpass)
{
alert("password does not match!");
return false;
}
else{
return true;
}
}
function validateform()
{
if(validatepassword() && validateemail())
{
return true;
}
else
{
return false;
}``
}
</script>`
答
这是因为ajax
和call back function
!
javascript是一种异步语言,并且执行逐行执行。但是当你传递一个函数作为参数,也就是所谓的回调函数,它在返回值来自服务器之后执行。
那就是在ajax的时候从服务器收到的数据,执行成功块。
请检查'preventdefault'功能。 – Unbreakable
这是因为您正在进行AJAX调用。你应该在'#email'的'blur'事件上调用'validateemail'# –
@MilanChheda:使用$(“#email”)。blur(function()。并使用d focus()来确保控制回到email字段谢谢。 – Kishor