jQuery验证语句不起作用

乔希

我的jQuery密码验证语句有问题。我什至在调试后也无法查明问题。我不确定它是否是vars uc,lc和nm而是agin,调试时没有错误,有帮助吗?

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');
    }
});
阿图尔·菲律宾(Artur Filipiak)

问题是您的变量(输入字段值)是在应用初始化时设置的。因此,.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 ...

JSFiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章