我正在使用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”。要获取实际的booleantruefalse,请删除引号:

    var flag = true;
…
    var flag = false;
…
return flag;


事件处理程序仅理解布尔返回值,而不是字符串。

07-24 18:28
查看更多