JQuery отправить событие и вернуть false - PullRequest
3 голосов
/ 03 февраля 2010

привет, я проверяю пустое поле в форме и предупреждаю пользователя. но когда предупреждает пользователя, что он публикует данные, я не могу вернуть false, чтобы не обновить страницу

$('#loginAccount').submit(function() {
    $(this).find(':input:text').each(function(i) {
        if($(this).val()=="") {
            // alert($('label').eq(i).html())
            $('#alert3').html('Please fill all fields.');
            return false;
        }
    });
});

Ответы [ 4 ]

7 голосов
/ 03 февраля 2010
$('#loginAccount').submit(function() {
    var valid = true;
    $(this).find(':input:text').each(function(i) {
        if($(this).val() == "") {
            // alert($('label').eq(i).html())
            $('#alert3').html('Please fill all fields.');
            valid = false;
        }
    });
    return valid;
});

Вы в настоящее время возвращаетесь с каждого. Что вам нужно сделать, это отследить, является ли оно действительным, и затем использовать это значение в качестве возврата от вашего подтверждения.

5 голосов
/ 03 февраля 2010

return false; имеет различное значение внутри jQuery each (). Это используется, чтобы вырваться из каждого. Может быть, вы могли бы установить флаг, который наблюдается после каждой (), чтобы увидеть, если проверка прошла успешно.

1 голос
/ 03 февраля 2010

Вам необходимо возвращать false в функции submit, а не в функции each:

$('#loginAccount').submit(function() {
    var isValid = true;
    $(this).find(':input:text').each(function(i) {
        if($(this).val()=="")
        {
            isValid = false;
            //alert($('label').eq(i).html())
            $('#alert3').html('Please fill all fields.');

        }
    });
    return isValid;
});
0 голосов
/ 03 февраля 2010

Можно ли использовать закрытие для возврата значения?

    $('#loginAccount').submit(function() {
           var result = true;    
            $(this).find(':input:text')
                 .each(function(i) {
                if($(this).val()=="")
                {
                    //alert($('label').eq(i).html())
                    $('#alert3').html('Please fill all fields.');
                    result = false;
                }
            });
            return result;
            })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...