我正在使用jajax注册表格。我的jQuery代码如下:
function validateData()
{
var email = jQuery("#email").val();
var username = jQuery("#username").val();
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var regex = new RegExp(/^\+?[0-9(),.-]+$/);
if(!emailReg.test(email))
{
alert('Please enter valid email');
return false;
}
var agreement = jQuery("#agereement").is(":checked");
if(agreement == false)
{
alert("Please agree with the agreement !!! ");
return false;
}
var pass = jQuery("#password").val();
var repass = jQuery("#repeatpass").val();
if(pass != repass)
{
alert("Password & Repeat Password Should be same");
return false;
}
var FirstData = "email=" + email+"&username="+username;
var url = "ajaxcheck.php";
jQuery.ajax({
dataType : 'html',
type: 'GET',
url : url,
data : FirstData,
complete : function() { },
success: function(data)
{
if(data == '')
{
alert("No Problem");
var flag = "true";
}
else{
alert("Username Or Email ID Already Exists");
var flag = "false";
}
}
});
alert(flag);
return flag;
}
</script>
当我提交表单并输入数据库中已经存在的用户名的值时,它会提示
Username Or Email ID Already Exists
,但提交表单而不是停留在页面上。如果出现错误我该怎么办,那么它应该停留在页面上而不是提交表单 最佳答案
当你写:
var flag = "true";
…
var flag = "false";
…
return flag;
问题是
"true"
和"false"
是strings包含单词“ true”或“ false”。要获取实际的boolean值true
或false
,请删除引号: var flag = true;
…
var flag = false;
…
return flag;
事件处理程序仅理解布尔返回值,而不是字符串。