JQuery, если еще, почему не работает? - PullRequest
0 голосов
/ 26 апреля 2010

В следующей функции она проходит через if и else, почему это так?

function test(){
        $(".notEmpty").each(function() {
         if($(this).val() === ""){
            alert("Empty Fields!!");
            return;
           }
         else{
                AddRow_OnButtonClick('tblMedicationDetail',6);
              }
     });

}

Есть ли в jquery оператор if и else, о котором я не знаю?

AddRow_OnButtonClick - это функция для добавления новой строки с 6 текстовыми полями, к которой я прикрепляю className 'notEmpty', если любое из текстовых полей пусто, функция AddRow_OnButtonClick не должна вызываться и должно появляться предупреждение.

Я не знаю, что я делаю не так.

Спасибо

Ответы [ 4 ]

3 голосов
/ 26 апреля 2010

Оператор return возвращается только из функции, переданной в .each. Я подозреваю, что ваша проблема в том, что вы хотите вернуться с test(). Таким образом, после возврата из внутренней функции вы все равно примените внутреннюю функцию к остальным элементам.

Если я прав, и вы хотите вообще выйти из .each(), вместо этого поставьте return false ( см. Документы jQuery ).

1 голос
/ 26 апреля 2010

Объединение двух существующих ответов заставляет меня поверить, что это сработает:

var emptyFields = false;

function test(){
    emptyFields = false;
    $(".notEmpty").each(function() {
        if($.trim($(this).val()) == "") {
            emptyFields = true;
            return false; // break out of the each-loop
        } 
    });
    if (emptyFields) {
        alert("Empty Fields!!");
    } else {
        AddRow_OnButtonClick("tblMedicationDetail",6);
    }
}

Основная идея заключается в том, что вам нужно использовать ваш вызов .each, чтобы только определить, является ли поле пустым. После этого вы можете обрабатывать информацию, используя оператор if else.

0 голосов
/ 26 апреля 2010
if($(this).val() == ""){

2 равно знакам, а не 3 - что МОЖЕТ быть вашей проблемой ...?

0 голосов
/ 26 апреля 2010

Я структурировал ваш код, чтобы сделать его немного более читабельным, но я не уверен, почему оба if и else оба называются:

function test(){
    $(".notEmpty").each(function() {
        if($(this).val() === ""){
            alert("Empty Fields!!");
            return;
        } else {
            AddRow_OnButtonClick("tblMedicationDetail",6);
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...