jquery 验证语句无效
jquery validation statement not working
我的 jQuery 密码验证语句有问题。即使在 debugging.Im 不确定它是否是 uc、lc 和 nm 变量之后我也无法查明问题,但是再一次,调试时没有错误,有帮助吗?
var pFields = $('#pword1, #pword2'),
p1 = $('#pword1'),
p2 = $('#pword2'),
p1Val = p1.val(),
p2Val = p2.val();
var uc = (p1Val.match(/[A-Z]/)) ? 1 : 0,
lc = (p1Val.match(/[a-z]/)) ? 1 : 0,
nm = (p1Val.match(/[0-9]/)) ? 1 : 0;
pFields.on('blur', function() {
if(p1Val == "") {
p1.removeClass('success').addClass('error');
alert('p1 is empty');
} else if(p2Val == "") {
p2.removeClass('success').addClass('error');
alert('p2 is empty');
} else if(p1Val != p2Val) {
pFields.removeClass('success').addClass('error');
alert('p fields do not match');
} else if(!uc) {
p1.removeClass('success').addClass('error');
alert('add a uc');
} else if(!lc) {
p1.removeClass('success').addClass('error');
alert('add a lc');
} else if(!nm) {
p1.removeClass('success').addClass('error');
alert('add a nm');
} else {
pFields.removeClass('error').addClass('success');
alert('success');
}
});
问题是您的变量(输入字段值)是在应用程序初始化时设置的。所以 .on('blur')
即使您的输入字段已填写,您也是在检查变量而不是输入字段值。
将变量放入 .on('blur')
范围:
var pFields = $('#pword1, #pword2'),
p1 = $('#pword1'),
p2 = $('#pword2');
pFields.on('blur', function() {
var p1Val = p1.val(),
p2Val = p2.val(),
uc = (p1Val.match(/[A-Z]/)) ? 1 : 0,
lc = (p1Val.match(/[a-z]/)) ? 1 : 0,
nm = (p1Val.match(/[0-9]/)) ? 1 : 0;
//... rest of your code ...
我的 jQuery 密码验证语句有问题。即使在 debugging.Im 不确定它是否是 uc、lc 和 nm 变量之后我也无法查明问题,但是再一次,调试时没有错误,有帮助吗?
var pFields = $('#pword1, #pword2'),
p1 = $('#pword1'),
p2 = $('#pword2'),
p1Val = p1.val(),
p2Val = p2.val();
var uc = (p1Val.match(/[A-Z]/)) ? 1 : 0,
lc = (p1Val.match(/[a-z]/)) ? 1 : 0,
nm = (p1Val.match(/[0-9]/)) ? 1 : 0;
pFields.on('blur', function() {
if(p1Val == "") {
p1.removeClass('success').addClass('error');
alert('p1 is empty');
} else if(p2Val == "") {
p2.removeClass('success').addClass('error');
alert('p2 is empty');
} else if(p1Val != p2Val) {
pFields.removeClass('success').addClass('error');
alert('p fields do not match');
} else if(!uc) {
p1.removeClass('success').addClass('error');
alert('add a uc');
} else if(!lc) {
p1.removeClass('success').addClass('error');
alert('add a lc');
} else if(!nm) {
p1.removeClass('success').addClass('error');
alert('add a nm');
} else {
pFields.removeClass('error').addClass('success');
alert('success');
}
});
问题是您的变量(输入字段值)是在应用程序初始化时设置的。所以 .on('blur')
即使您的输入字段已填写,您也是在检查变量而不是输入字段值。
将变量放入 .on('blur')
范围:
var pFields = $('#pword1, #pword2'),
p1 = $('#pword1'),
p2 = $('#pword2');
pFields.on('blur', function() {
var p1Val = p1.val(),
p2Val = p2.val(),
uc = (p1Val.match(/[A-Z]/)) ? 1 : 0,
lc = (p1Val.match(/[a-z]/)) ? 1 : 0,
nm = (p1Val.match(/[0-9]/)) ? 1 : 0;
//... rest of your code ...