检查function不是工作变量意味着不变

你好我在jQuery中有一个寄存器脚本只validation一个字段,一切正常,除了我创建一个变量检查​​的最后一部分并将其含义设置为0.检查一切是否正常它会变为1,如果不是0和最后如果!=到0显示下一个按钮div。 即使我正确地填写了那些字段,它也没有显示,这可能意味着意义保持不变,因为如果我将变量含义设置为1,我声明了,则按钮出现。 这是我的脚本代码:

 //password validation ================================== var check = 0; $(document).ready(function() { $('input[name*="password"]').keyup(validatepass); }); function validatepass(){ var password = $('input[name="password"]').val(); var repassword = $('input[name="repassword"]').val(); var isValid = /^[a-zA-Z0-9]*$/.test(password); var length = password.length; if (isValid && (length > 4) && (length  4) && (length < 16)){ $("#username").addClass("valid"); check = 1; } else { $("#username").addClass("invalid"); check = 0; } }); }); //Email validation------------------------------- $(function () { jQuery('#email').on('input', function () { $("#email").removeClass(); var username = $(this).val(); var isValid = /^(([^()\[\]\\.,;:\s@"]+(\.[^()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(username); if (isValid){ $("#email").addClass("valid"); check = 1; } else { $("#email").addClass("invalid"); check = 0; } }); }); /// button show if everything is ok $(document).ready(function() { if(check != 0){ $("#loginsubmitbutton2").show(); } });  

我不得不重做你的一些代码,看看整个小提琴:

https://jsfiddle.net/nkq8gc8z/4/

我做的主要事情:

在每个输入事件上,检查表单中存在的字段的数量是否与该类valid字段的数量相同。 因为如果是这种情况,所有字段都经过validation,您可以显示按钮。

这意味着不再需要check变量。

你主要做错的是这段代码:

 $(document).ready(function() { if(check != 0){ $("#loginsubmitbutton2").show(); } }); 

它检查check变量是否为0,因为页面加载。 您将check设置为脚本顶部的0,这意味着当代码的这部分运行时它将始终为0,因此按钮永远不会显示。