Как мне ограничить количество выбранных тегов опций в теге select в jQuery и javascript?

#javascript #jquery

#javascript #jquery

Вопрос:

Я пытаюсь использовать jQuery, чтобы ограничить количество выбранных тегов опций в jQuery до 100. Что я делаю не так? Тег select выглядит следующим образом:

<выберите имя ="порядок">
<значение опции = "1" выбрано> Название заказа</option> ...

после того, как пользователь выберет один или несколько тегов опций… Все еще не уверен, как заставить обработчик событий работать.

var countSelectedOptionTags
$("select[name='order']").change(функция() {
 $("select[name='order']").children('attr="selected"').each(функция() { 
 countSelectedOptionTags   ;
 }); 
 если количество выбранных тегов optiontags > 100 
 {
 предупреждение ("Вы не можете выбрать более 100 тегов опций".);
 Возврат;

 }// Мне нужны теги опций, которые имеют атрибут selected

Комментарии:

1. Работает ли это в jquery-1.3.2.min.js ?

Ответ №1:

Попробуйте это:

 $("select[name='order'] option:selected")
  

предоставит вам все выбранные параметры.

 $("select[name='order'] option:selected:gt(99)");
  

будут предоставлены выбранные опции с индексом, превышающим 100

 var countSelectedOptionTags = 0;
$("select[name='order']").change(function() {
    var selectedOptions = $("select[name='order'] option:selected");
  countSelectedOptionTags = selectedOptions.length;
  if countSelectedOptionTags > 100 
  {
     alert("You can not select more than 100 option tag.");
     return;
  }
    .
    .
    .
});
  

Комментарии:

1. Да, это работает, но теперь мне нужно удалить все последние атрибуты, кроме 100. Блин

2. @Marc: Обновил сообщение, чтобы количество выбранных опций превышало 100. Пожалуйста, проверьте.

3. @Marc: Кроме того, с моей точки зрения, элемент select, содержащий более 100 элементов, не является удобным для пользователя компонентом.