JQuery: каждая функция останавливает выполнение родительской функции

0

В форме сброса пароля я проверяю два ввода пароля (пароль и пароль2), чтобы убедиться, что они соответствуют регулярному выражению, имеют определенную длину и соответствуют друг другу. Любые проблемы подсвечивают оскорбительный ввод и вызывают сообщение об ошибке.

Чтобы проверить оба входа на регулярное выражение и на длину, я использую функцию "каждый", но это не работает. Фактически, когда он присутствует, вся функция 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
    Отсутствует ")" }) //End of problem code
Теги:

1 ответ

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;
       }
  • 1
    Отлично - спасибо за вашу помощь. Знакомство с JQuery, так что это большой урок.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню