как сделать JQuery независимым - PullRequest
1 голос
/ 08 февраля 2012

У меня есть JQuery для проверки моего раскрывающегося списка.если «да» на радио поле, я могу выбрать из выпадающего списка.если «нет» в раскрывающемся списке радиоблока отображается серым цветом.

Если оба радиоблока имеют значение «да», а значение в обоих раскрывающихся списках - «пожалуйста, выберите» и кнопка «Отправить» нажата, возникает ошибка проверки и НЕ ДАЕТперенаправить на index.html.

Если один радиоблок имеет значение «да» и выпадающий список, выберите «пожалуйста», а другой - «нет» со значением «красный» в раскрывающемся списке и нажмите кнопку «Отправить», если произошла ошибка проверкии перенаправить на index.html.Очевидно, что это побеждает цель проверки.

Я надеюсь, что кто-то может помочь, потому что это сводит меня с ума.

1 Ответ

0 голосов
/ 08 февраля 2012

Если я правильно понимаю, у вас есть функция validate() (которую вы не показываете), которая проверяет указанный элемент и возвращает true, если все в порядке, или false, если недействительно.При отправке вы хотите позвонить validate() для нескольких товаров, и если любой из них , то верните false, верните false отправителю (наоборот, верните true, только если все проверки true.

То, как ваш существующий код устанавливает retVal, когда он становится true, он будет оставаться true, потому что любой логический результат из validate()ИЛИ с true будет true. Попробуйте вместо этого:

       $("input:submit").click(function(){         
           var retVal = true;
           $.each([1, 2], function(i, val){
              retVal = validate(val) && retVal;
           });
            return retVal;   
       });

Это начинается с возврата по умолчанию true, а затем изменяется на false, если validate(val) возвращает false. Использование && вместо || означает, что если retVal равно false, оно останется false. На мой взгляд, было бы яснее просто избавиться от && и сказать:

if (!validate(val)) retVal = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...