你好我在jQuery中有一个寄存器脚只会验证一个字段,除了我创建变量检查的最后一部分并将其含义设置为0之外,一切正常。检查一切是否正常它会变为1,如果不是0,最后如果!=到0则显示下一个按钮div。即使我正确地填写了那些字段,它也没有显示,这可能意味着意义保持不变,因为如果我将变量含义设置为1,我声明了,则按钮出现。这是我的脚本代码:
<script type="text/javascript">
//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 < 16)){
if(password == repassword){
$('input[name="password"]').attr('class', 'valid');
$('input[name="repassword"]').attr('class', 'valid');
check = 1;
} else {
$('input[name="repassword"]').attr('class', 'invalid');
check = 0;
}
if(password == ""){
$('input[name="password"]').attr('class', 'invalid');
$('input[name="repassword"]').attr('class', 'invalid');
check = 0;
} else {
$('input[name="password"]').attr('class', 'valid');
check = 1;
}
} else {
$('input[name="password"]').attr('class', 'invalid');
$('input[name="repassword"]').attr('class', 'invalid');
check = 0;
}
}
//username validation ========================
$(function () {
jQuery('#username').on('input', function () {
$("#username").removeClass();
var username = $(this).val();
var isValid = /^[a-zA-Z0-9]*$/.test(username);
var length = username.length;
if (isValid && (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();
}
});
</script>
答案 0 :(得分:1)
我不得不重做你的一些代码,看看整个小提琴:
我做的主要事情是:
在每个输入事件中,检查表单中存在的<input>
字段数量是否与类<input>
的{{1}}字段数量相同。因为如果是这种情况,所有字段都经过验证,您可以显示按钮。
这意味着不再需要valid
变量。
你主要做错的是这段代码:
check
它检查$(document).ready(function() {
if(check != 0){
$("#loginsubmitbutton2").show();
}
});
变量是否不是0 AS SOON AS 页面加载。您在脚本顶部将check
设置为0,这意味着当代码的这部分运行时,始终为0,因此按钮永远不会显示。