JQuery: Как я выбираю значение из dropdownlist нечувствительного к регистру?

Существует два способа, которыми Вы могли приблизиться к этому лучше:

  1. Передача словарь (ассоциативный массив), если Вы хотите оставить большую гибкость

  2. , Берет объект в качестве аргумента и использует основанное на прототипе наследование для добавления гибкости.

11
задан Bryan Denny 6 August 2009 в 14:13
поделиться

4 ответа

Вот другой подход: найдите соответствующее значение в его фактическом случае, «StackOverflow», и вызовите с ним val () .

  var matchingValue = $('#select option').filter(function () { 
      return this.value.toLowerCase() == 'stackoverflow'; 
  } ).attr('value');    
  $('#select').val(matchingValue);

Конечно, литерал 'stackoverflow' должен быть заменен переменной.

14
ответ дан 3 December 2019 в 05:58
поделиться

Я думаю, что лучший способ сделать это - это посмотреть на это до, а не после. Если вы сделаете их все в нижнем регистре, все они будут стандартизированы, и с ними будет легче работать. Затем все, что вам нужно сделать, это сделать ввод пользователя строчными буквами, и это действительно легко.

4
ответ дан 3 December 2019 в 05:58
поделиться

При размытии переберите свои параметры и проверьте, совпадают ли они. Затем выберите тот, который соответствует.

В коде:

$("#button").blur(function(){
  var val = $(this).val();
  $("#list option").each(function(){
     if($(this).text().toLowerCase() == val) $(this).attr("selected","selected");
  });
});

Я еще не тестировал его, поэтому обязательно проверьте синтаксические ошибки.

2
ответ дан 3 December 2019 в 05:58
поделиться

Регулярное выражение ( RegExp), вероятно, лучший вариант.

var txt = new RegExp(pattern,attributes);

шаблон: текстовый шаблон
атрибуты: «i» для нечувствительности к регистру

Можно комбинировать с функцией фильтра. что-то вроде этого должно работать.

$("#textbox").blur( function () { 

    var text = $(this).val();

    var dropdownlist = 
       $("select").filter( function () {
          return (new RegExp(text, "i")).test($(this).attr("id"));
       });

    // do something to dropdownlist

});
0
ответ дан 3 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: