Jquery 如果在$.ajaxURL中调用的方法返回false,则要使web表单无效吗

Jquery 如果在$.ajaxURL中调用的方法返回false,则要使web表单无效吗,jquery,ajax,validation,server-side-validation,Jquery,Ajax,Validation,Server Side Validation,简单的注册表单有一个字段“首选登录id(用户名)”。一旦用户输入电子邮件,我将通过将输入的用户名与数据库值进行比较来验证输入的用户名(如果它已经存在或不存在)。为此,我使用jquery的$.ajax方法进行服务器调用 <script> $('#txtPreferredLogin').focusout(function () { $.ajax({ type: "POST", url: "../Log

简单的注册表单有一个字段“首选登录id(用户名)”。一旦用户输入电子邮件,我将通过将输入的用户名与数据库值进行比较来验证输入的用户名(如果它已经存在或不存在)。为此,我使用jquery的$.ajax方法进行服务器调用

<script>
$('#txtPreferredLogin').focusout(function () {
            $.ajax({
                type: "POST",
                url: "../Login.aspx/CheckUserName",
                async: false,`enter code here`
                data: "{userName: '" + $('#txtPreferredLogin').val() + "' }",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    $('#valid').html("<img src='Images/waiting.gif' alt='Checking username!'>");
                    var delay = function () {
                        AjaxSucceeded(response);
                    };
                    setTimeout(delay, 500);
                },
                failure: function (response) {
                    alert(response.d);
                }
            });
        });

        function AjaxSucceeded(result) {
            if (result.d == true) {
                $('#valid').html("<img src='Images/2_Not.png' alt='Username taken!'>");
            }
            else {
                $('#valid').html("<img src='Images/1_available.png' alt='Username available!'>");
            }
        }

        $.validator.addMethod('notNone', function (value, element) {
            return (value != '0');
        });

        $(function () {
            $("#regi1").validate(
            {
                rules:
                {
                    ddlCity:
                      {
                          required: true,
                          notNone: true
                      },
                    txtDOB:
                      {
                          required: true,
                          dpDate: true
                      }
                },
                messages: {
                    ddlCity: "Please select city",
                    txtDOB: "Please enter a valid date (dd-mm-yyyy)"
                }
            });
        });

</script>

现在,当用户名不可用时,它会显示一条消息(图像),表明它不可用。但我在这些字段下面有一个保存按钮,点击该按钮,整个表单就会得到验证,也就是说,除非用户名不可用,否则在所有字段都有效之前,它不会回发页面。现在,如果用户名不可用,我不想回发。我需要在代码中做哪些更改?

如果使用jQuery表单验证,那么必须使用远程验证。由验证框架提供


希望这将有所帮助,因为Riaz说远程验证非常有用,但在您的情况下,您已经在检查用户名,所以您不想再次访问服务器

jquery具有.data函数,您可以使用它

function AjaxSucceeded(result) {
    if (result.d == true) {
        $('#valid').html("&lt;img src='Images/2_Not.png' alt='Username taken!'>");
        $("#txtPreferredLogin").data("available", false); //add data
    } else {
        $('#valid').html("&lt;img src='Images/1_available.png ' alt='        Username available!'>");
        $("#txtPreferredLogin").data("available", true); //add data
    }
}

//add validator
$.validator.addMethod('
        available ', function(value, element) {
    return $(element).data("available");
});



$(function() {
    $("#regi1").validate({
        rules: {
            txtPreferredLogin: {
                required: true,
                available: true
            },
            ddlCity: {
                required: true,
                notNone: true
            },
            txtDOB: {
                required: true,
                dpDate: true
            }
        },
        messages: {
            ddlCity: "Please select city",
            txtDOB: "Please enter a valid date (dd-mm-yyyy)"
        }
    });
});

谢谢Zahid和codebins.com。这两种解决方案(远程验证和.data函数)都适合我。我使用了.数据来快速实现。
function AjaxSucceeded(result) {
    if (result.d == true) {
        $('#valid').html("&lt;img src='Images/2_Not.png' alt='Username taken!'>");
        $("#txtPreferredLogin").data("available", false); //add data
    } else {
        $('#valid').html("&lt;img src='Images/1_available.png ' alt='        Username available!'>");
        $("#txtPreferredLogin").data("available", true); //add data
    }
}

//add validator
$.validator.addMethod('
        available ', function(value, element) {
    return $(element).data("available");
});



$(function() {
    $("#regi1").validate({
        rules: {
            txtPreferredLogin: {
                required: true,
                available: true
            },
            ddlCity: {
                required: true,
                notNone: true
            },
            txtDOB: {
                required: true,
                dpDate: true
            }
        },
        messages: {
            ddlCity: "Please select city",
            txtDOB: "Please enter a valid date (dd-mm-yyyy)"
        }
    });
});