2012-03-08 3 views
0

В моем приложении ASP.NET MVC у меня есть вид с тегом select с возможностью выбора нескольких параметров.Добавить jQuery validationrule для multi-select

По умолчанию (при загрузке страницы) У меня нет параметров в списке. Из какого-либо действия выбор может быть заполнен параметрами, и это отлично работает.

Теперь, когда я отправляю форму, я хочу проверить, есть ли у выбора какие-либо параметры или нет, так как требуется, чтобы выбор имел хотя бы один параметр при отправке формы. Я не хочу проверять, выбраны ли какие-либо параметры или нет, только если в элементе есть какие-либо опции. Это то, что я получил до сих пор:

<select multiple="multiple" style="width:200px;" id="PersonnelClasses" 
       name="PersonnelClasses"></select> 

И JQuery-код:

$("#PersonnelClasses").rules("add", { 
    required: true 
}); 

Теперь, что будет правило выглядеть, чтобы проверить, если выбрать есть какие-либо элементы в списке? Я не нашел никакого решения здесь на SO или в документах jQuery.

Update:

Код для добавления опций к выберите:

this.addPersonnelClass = function() { 
     $('#selectablePersonnelClasses :selected'). 
      each(function (value, item) { 
      $('#PersonnelClasses') 
       .append($('<option></option>') 
       .val(item.value) 
       .html(item.text)); 
    }); 
}; 
+0

Ваш вопрос довольно расплывчато на основе вашего кода. Разве это так выглядит тэг 'select'? Как насчет вашего контроллера и остальной части вашего представления. Есть ли что-то, что динамически добавляет больше опций для выбора? – gideon

+0

Именно так выглядит мой тег. Я не думаю, что любой другой код имеет значение. В моем контроллере я просто получаю данные формы через FormCollection. Остальная часть представления (за исключением submitbutton) состоит из второго выбора и кнопки для добавления элементов в первый выбор. Это происходит с некоторым кодом jQuery, но не имеет никакого отношения к проверке ... – Abbas

+0

Итак, как меняются опции 'select'? – gideon

ответ

1

Как я понимаю, страница загружена, пользователь нажимает на пару вещей, и затем выберите в динамически заполненными вариантами. Вы хотите получить количество опций после обновления.

посмотреть на следующий код:

<html> 
<head> 
    <script src="js/jquery.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
      function checkLength(){ 
       alert($('#PersonnelClasses option').length); 
      } 
     </script> 
</head> 
<body> 
<form NAME="myform" ACTION="" METHOD="GET"> 
    <select multiple="multiple" style="width:200px;" id="PersonnelClasses" name="PersonnelClasses"> 
     <option>bla</option> 
     <option>lala</option> 
     <option>lolo</option> 
     <option>l4</option> 
    </select> 
    <input type="button" name="mysubmit" onClick="checkLength()" value="Click" /> 
</form> 
</body> 
</html> 
  • этот пример проверяет количество вариантов в выберите каждый раз при нажатии на кнопку. (Этот щелчок действие происходит после загрузки веб-страницы, а пользователь заселили выберите)
  • Не устанавливайте функцию в document.ready функции (в противном случае функция не найдена)
+0

Это не то, что я изначально искал, я искал правила проверки jQuery, но я изменил ваше решение, чтобы заставить его работать в другой функции jQuery. Так что ваше обходное решение достаточно хорошее. :) – Abbas

Смежные вопросы