JavaScript注册验证错误

JavaScript registration validation error?

本文关键字:错误 验证 注册 JavaScript      更新时间:2023-09-26

我有以下JavaScript运行我的注册验证,但每次我输入一些东西,它返回username_ok为未定义,并每一个其他*_ok项。这个函数应该在定义之后运行,这样我就可以允许用户注册,但是它没有定义它。

有人能帮我一下吗?我想保持代码的相同格式,只是得到submit_check()函数的工作。
$(document).ready(function() {
    var min_chars = 4;
    var characters_error = 'Minimum amount of chars is 4';
    var checking_html = 'Checking...';
    $('#username').keyup(function(){
        if($('#username').val().length < min_chars){
            $('.username_error').html(characters_error);
            $('.username_error').css('color', 'red');
            $('#username').css('color', 'red');
            $('#username').css('border', '1px solid red');
        }else{
            $('.username_error').html(checking_html);
            $('.username_error').css('color', '#DDDDDD');
            $('#username').css('color', '#DDDDDD');
            $('#username').css('border', '1px solid #DDDDDD');
            check_availability();
        }
    });
});
function check_availability(){
    var username = $('#username').val();
    $.post("./includes/check-user.php", { username: username },
    function(result){
        if(result == 1){
            $('.username_error').html('The username ' + username + ' is Available');
            $('.username_error').css('color', 'green');
            $('#username').css('color', 'green');
            $('#username').css('border', '1px solid green');
            var user_ok='1';
            submit_check();
        }else{
            $('.username_error').html('The username ' + username + ' is not Available');
            $('.username_error').css('color', 'red');
            $('#username').css('color', 'red');
            $('#username').css('border', '1px solid red');
        }
    });
}
$(document).ready(function() {
    var min_chars_name = 4;
    var characters_error_name = 'Please enter atleast 4 chars.';
    $('#fname').keyup(function(){
        if($('#fname').val().length < min_chars_name){
            $('.fname_error').html(characters_error_name);
            $('.fname_error').css('color', 'red');
            $('#fname').css('color', 'red');
            $('#fname').css('border', '1px solid red');
        }else{
            $('.fname_error').css('color', 'green');
            $('#fname').css('color', 'green');
            $('#fname').css('border', '1px solid green');
            $('.fname_error').html('');
            var fname_ok='1';
            submit_check();
        }
    });
});
$(document).ready(function() {
    var min_chars_name = 4;
    var characters_error_name = 'Please enter atleast 4 chars.';
    $('#lname').keyup(function(){
        if($('#lname').val().length < min_chars_name){
            $('.lname_error').html(characters_error_name);
            $('.lname_error').css('color', 'red');
            $('#lname').css('color', 'red');
            $('#lname').css('border', '1px solid red');
        }else{
            $('.lname_error').css('color', 'green');
            $('#lname').css('color', 'green');
            $('#lname').css('border', '1px solid green');
            $('.lname_error').html('');
            var lname_ok='1';
            submit_check();
        }
    });
});
$(document).ready(function() {
    $('#birthd').change(function(){
        if($('#birthd').val() == '0'){
            $('#birthd').css('color', 'red');
            $('#birthd').css('border', '1px solid red');
        }else{
            $('#birthd').css('color', 'green');
            $('#birthd').css('border', '1px solid green');
            var birthd_ok='1';
            submit_check();
        }
    });
});
$(document).ready(function() {
    $('#birthm').change(function(){
        if($('#birthm').val() == '0'){
            $('#birthm').css('color', 'red');
            $('#birthm').css('border', '1px solid red');
        }else{
            $('#birthm').css('color', 'green');
            $('#birthm').css('border', '1px solid green');
            if($('#birthd').val() == '0'){
                $('#birthd').css('color', 'red');
                $('#birthd').css('border', '1px solid red');
            }else{
                $('#birthd').css('color', 'green');
                $('#birthd').css('border', '1px solid green');
                var birthm_ok='1';
                submit_check();
            }
        }
    });
});
$(document).ready(function() {
    $('#birthy').change(function(){
        if($('#birthy').val() == '0'){
            $('#birthy').css('color', 'red');
            $('#birthy').css('border', '1px solid red');
        }else{
            $('#birthy').css('color', 'green');
            $('#birthy').css('border', '1px solid green');
            var birthy_ok='1';
            submit_check();
            if($('#birthd').val() == '0'){
                $('#birthd').css('color', 'red');
                $('#birthd').css('border', '1px solid red');
            }else{
                $('#birthd').css('color', 'green');
                $('#birthd').css('border', '1px solid green');
                var birthm_ok='1';
            submit_check();
            }
        }
    });
}); 
$(document).ready(function() {
    $('#gender').blur(function(){
        if($('#gender').val() == '-'){
            $('#gender').css('color', 'red');
            $('#gender').css('border', '1px solid red');
        }else{
            $('#gender').css('color', 'green');
            $('#gender').css('border', '1px solid green');
            var gender_ok='1';
            submit_check();
        }
    });
    $('#gender').change(function(){
        if($('#gender').val() == '-'){
            $('#gender').css('color', 'red');
            $('#gender').css('border', '1px solid red');
        }else{
            $('#gender').css('color', 'green');
            $('#gender').css('border', '1px solid green');
            var gender_ok='1';
            submit_check();
        }
    });
});
$(document).ready(function() {
    var min_chars_name = 4;
    var characters_error_name = 'Please enter atleast 4 chars.';
    var match_error_name = 'Your passwords do not match.';
    $('#pass').keyup(function(){
        if($('#pass').val().length < min_chars_name){
            $('.pass_error').html(characters_error_name);
            $('.pass_error').css('color', 'red');
            $('#pass').css('color', 'red');
            $('#pass').css('border', '1px solid red');
        }else{
            $('.pass_error').css('color', 'green');
            $('#pass').css('color', 'green');
            $('#pass').css('border', '1px solid green');
            $('.lname_error').html('');
            $('#pass').keyup(function(){
                if($('#pass2').val() !== $('#pass').val()){
                    $('.pass_error').html(match_error_name);
                    $('.pass_error').css('color', 'red');
                    $('#pass2').css('color', 'red');
                    $('#pass2').css('border', '1px solid red');
                }else{
                    $('.pass_error').css('color', 'green');
                    $('#pass2').css('color', 'green');
                    $('#pass2').css('border', '1px solid green');
                    $('.pass_error').html('');
                    var gender_ok='1';
                    submit_check();
                }
            });
            $('#pass2').keyup(function(){
                if($('#pass2').val() !== $('#pass').val()){
                    $('.pass_error').html(match_error_name);
                    $('.pass_error').css('color', 'red');
                    $('#pass2').css('color', 'red');
                    $('#pass2').css('border', '1px solid red');
                }else{
                    $('.pass_error').css('color', 'green');
                    $('#pass2').css('color', 'green');
                    $('#pass2').css('border', '1px solid green');
                    $('.pass_error').html('');
                    var gender_ok='1';
                    submit_check();
                }
            });
        }
    });
});
function submit_check(){
    if(user_ok=='1' & gender_ok=='1' & birthm_ok=='1' & birthd_ok=='1' & birthy_ok=='1' & fname_ok=='1' & lname_ok=='1'){
        document.write("hello");
    };
};

这是因为您使用的这些变量在这些局部函数的局部作用域中。要解决这个问题,请将它们放在文档之外。准备功能:

var user_ok = 0;
var gender_ok = 0;
var birthm_ok = 0;
var birthd_ok = 0;
var birthy_ok = 0;
var fname_ok = 0;
var lname_ok = 0;
/*Now do your $(document).ready things*/

然后在你的函数内部,通过使用user_ok=1;来改变它们。

此外,在submit_check函数的if语句中有一个错误。你需要使用&&而不是&.

function submit_check(){
    if(user_ok=='1' && gender_ok=='1' && birthm_ok=='1' && birthd_ok=='1' && birthy_ok=='1' && fname_ok=='1' && lname_ok=='1'){
        document.write("hello");
    };
};