Проверка JQuery: как проверить элементы в множественном выборе - PullRequest
6 голосов
/ 12 октября 2010

У меня есть форма, использующая плагин проверки JQuery.

<label>
    <input name="Distribution[]" type="checkbox" id="dist_europe" class="required minlength:1" value="Europe" />  Europe 
</label>

<select name="Europe[]" size="5" multiple id="Europe">
   <option value='Albania'>Albania</option>
   <option value='Andorra'>Andorra</option>
   <option value='Austria'>Austria</option>
</select>

Мне нужно сделать «условную» проверку. например. Если флажок установлен, убедитесь, что хотя бы один пункт в «Выбор опции выбран».

 $(document).ready(function(){
     $("#commentForm").validate({
      rules: {
              Europe: {
                required: "#dist_europe:checked",
                minlength: 1
              }  
      },
      messages: {
        Europe: "Please select at least 1 country"
      }
     }
})

Проблема, с которой я сейчас сталкиваюсь:

  1. Я могу определить, что флажок установлен.
  2. Однако я не могу проверить массив 'select', Европа []
  3. Если я удалю массив и назову его «Европа», я смогу обнаружить, что выбран хотя бы один элемент. Но это будет означать, что бэкэнд-скрипт PHP не сможет обработать множественный выбор в массиве.

Как мне обойти это? Спасибо

1 Ответ

13 голосов
/ 13 октября 2010

При использовании имени, такого как name="Europe[]", вам необходимо использовать строку для вашего идентификатора (идентификатор - это имя , а не id элемента) rules и messages, вот так:

$(document).ready(function(){
     $("#commentForm").validate({
      rules: {
        'Europe[]': {
                required: "#dist_europe:checked",
                minlength: 1
              }  
      },
      messages: {
        'Europe[]': "Please select at least 1 country"
      },
     debug: true
    });
});

Вы можете проверить это здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...