Почему этот рабочий JavaScript не работает? - PullRequest
0 голосов
/ 23 сентября 2011

Я использую это для обнаружения ошибок в моей форме ...

var error = false;

if (val === '') {

    error = true;
}

if (error = true) {

    $('#joinForm .submit').click(function(event) {
        event.preventDefault();
    });
}

Просто на самом деле, но не работает, я что-то упустил? переменная ошибка по умолчанию false .

Если обнаружена ошибка, это true .

Если обнаружена ошибка true , это препятствует отправке формы?

Ответы [ 2 ]

3 голосов
/ 23 сентября 2011
var error = false;

if (val === '') { // <<< This checks type first, then value
                  //     An empty '' variable is not type-equivalent
                  //     to a (boolean) false value
    error = true;
}

if (error = true) { // <<< You're setting a variable here, which means
                    //     means that you're testing if the variable
                    //     assignment itself is successful, you'll get
                    //     a true result in most cases, and except with
                    //     things like while loops, you shouldn't use this
                    //     form.
                    // Maybe you want == (falsy)? Or === (type-checked)?
    $('#joinForm .submit').click(function(event) {
        event.preventDefault();
    });
}
0 голосов
/ 23 сентября 2011

Вы должны выполнить проверку в обработчике отправки события:

$('#joinForm').submit(function(event) {

    var error = false;

    if (val === '') {
        error = true;
    }

    if (error) {
        event.preventDefault();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...