JQuery:每个函数都停止运行父函数

时间:2013-11-15 10:02:49

标签: javascript jquery

在密码重置表单上,我验证了两个密码输入(密码和密码2)以确保它们与正则表达式匹配,具有一定的长度并且彼此匹配。任何问题都会突出显示有问题的输入并引发错误消息。

要检查两个输入与正则表达式和长度我使用'each'函数,但它不起作用。事实上,当它在那里时,整个checkform()函数似乎没有运行(我用警告框测试它 - 当我删除警报显示的每个函数时,当它在那里时,它没有)。

这是脚本:

  function checkform(){

alert("function running");
regex=/^[a-zA-Z0-9_]+$/;    

//This each function stops checkform() from running //

$("#password, #password2").each(function() {
    if($(this).val().length>5){
        $(this).css('border', '');
    } else {
        $(this).css('border', '1px solid red');
        $("#errormsg").html("Oops! Please enter a valid password");
        return false;           
    }
}
//End of problem code

if($("#password").val() != $("#password2").val()){
    $("#password").css('border', '1px solid red');
    $("#password").css('border', '1px solid red');
    $("#errormsg").html("Oops! Your passwords don't match");
    return false;
    } else {
        $("#errormsg").empty();
    }
   return true;
   }

任何人都可以看到问题所在吗?

由于

1 个答案:

答案 0 :(得分:0)

这是正确的代码

function checkform(){

    alert("function running");
    regex=/^[a-zA-Z0-9_]+$/;    

    //This each function stops checkform() from running //

    $("#password, #password2").each(function() {
        if($(this).val().length>5){
            $(this).css('border', '');
        } else {
            $(this).css('border', '1px solid red');
            $("#errormsg").html("Oops! Please enter a valid password");
            return false;           
        }
    }); // <-- close the "(" of the each function
    //End of problem code

    if($("#password").val() != $("#password2").val()){
        $("#password").css('border', '1px solid red');
        $("#password").css('border', '1px solid red');
        $("#errormsg").html("Oops! Your passwords don't match");
        return false;
        } else {
            $("#errormsg").empty();
        }
       return true;
       }