使用jquery对文本框进行多次验证错误

时间:2014-03-19 13:52:46

标签: javascript jquery

我想在按钮点击期间打印特定的emty错误消息以及年龄字段的编号错误消息。对于我的代码,只有最后一条错误消息是diplaying 这是用于验证目的。

<script type="text/javascript">
            $(document).ready(function () {
                $("#<%=btnSubmit.ClientID %>").click(function () {
                    var error = 0;
                    var name = $('#<%=txtName.ClientID%>').val();

                    if ($.trim(name) == '') {
                        $('#name_error_msg').text('Name cannot be Empty');
                        $('#name_error_msg').parent().show();
                        error = 1;
                    } else
                        $('#name_error_msg').text('');


                    var country = $('#<%=ddlCountry.ClientID%>').val();
                    if (country == 0) {
                        $('#country_error_msg').text('Please select the Country');
                        $('#country_error_msg').parent().show();
                        error = 1;
                    }
                    else
                        $('#country_error_msg').text('');



                    var age = $('#<%=txtAge.ClientID%>').val();
                    if ($.trim(age) == '') {
                        $('#age_error_msg').text('Invalid Age');
                        $('#age_error_msg').parent().show();
                        error = 1;
                    }

                    var filter = /^[0-9-+]+$/;
                    if (!filter.test(age)) {
                        $('#age_error_msg').text('Invalid Age');
                        $('#age_error_msg').parent().show();
                        error = 1;
                    }
                    else
                        $('#age_error_msg').text('');


                    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
                    if (!filter.test(emailReg)) {
                        $('#email_error_msg').text('Invalid email format');
                        $('#email_error_msg').parent().show();
                        error = 1;
                    }
                    else {
                        $('#email_error_msg').text('');
                    }
                    var email = $('#<%=txtEmail.ClientID%>').val();
                    if ($.trim(email) == '') {
                        $('#email_error_msg').text('Email cannot be Empty');
                        $('#email_error_msg').parent().show();
                        error = 1;
                    } else {
                        $('#email_error_msg').text('');
                    }



                    if (!($('#<%=ChkAgree.ClientID%>').is(':checked'))) {
                        error = 1;
                        $('#check_error_msg').html("Please Tick the Agree to Terms of Use.");
                        $('#check_error_msg').parent().show();
                    }
                    else
                        $('#check_error_msg').html(" ");

                    if (error) {
                        return false;
                    } else {
                        return true;
                    }
                });


            });
        </script>

2 个答案:

答案 0 :(得分:0)

您需要做的就是替换:

var age = $('#<%=txtAge.ClientID%>').val();
if ($.trim(age) == '') {
    $('#age_error_msg').text('Invalid Age');
    $('#age_error_msg').parent().show();
    error = 1;
}

var filter = /^[0-9-+]+$/;
if (!filter.test(age)) {
    $('#age_error_msg').text('Invalid Age');
    $('#age_error_msg').parent().show();
    error = 1;
}
else
    $('#age_error_msg').text('');

使用:

var filter = /^[0-9-+]+$/;
var age = $('#<%=txtAge.ClientID%>').val();
if ( $.trim(age) == '' || !filter.test(age)) {
    $('#age_error_msg').text('Invalid Age');
    $('#age_error_msg').parent().show();
    error = 1;
} else {
    $('#age_error_msg').text('');
}

答案 1 :(得分:0)

您可以创建一个临时变量来添加每个错误。

                var age_errors = [];
                var age = $('#<%=txtAge.ClientID%>').val();
                if ($.trim(age) == '') {
                    age_errors.push('Age is empty');
                    $('#age_error_msg').parent().show();
                    error = 1;
                }

                var filter = /^[0-9-+]+$/;
                if (!filter.test(age)) {
                    age_errors.push('Invalid Age number');   
                    $('#age_error_msg').parent().show();
                    error = 1;
                }
                // set the error: empty string or a comma-separated list.
                $('#age_error_msg').text(age_errors.join(', '));