Что не так с этой привязкой JQuery для списка SELECT? - PullRequest
4 голосов
/ 03 ноября 2011

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

<select id="OrderItemViewModels_2__OrderItemStatusId" name="OrderItemViewModels[2].OrderItemStatusId"><option value="-1"></option>
<option value="1">CONFIRMED</option>
<option value="2">NO SALE</option>
<option value="3">PENDING</option>
</select>

Я пытаюсь привязать к ним обработчики событий .change (), чтобы я мог инициировать вызов .ajax, чтобы заполнить другой раскрывающийся список на основе значения этогоодин, но привязка не работает.JS выглядит следующим образом:

 $(document).ready(function () {
      $('select[name$="OrderItemStatusId"]').each(function (){
        //alert(this.name);
        var dropdown = this;
        dropdown.change(function() {
          alert('testing ');
          //GetOrderItemReasons(dropdown.val());
        });
      });

Я получаю сообщение об ошибке: «Объект не поддерживает это свойство или метод» .Но первое предупреждение ясно показывает, что элемент выбирается, потому что оно показывает имя правильно.

Что я здесь не так делаю?

1 Ответ

9 голосов
/ 03 ноября 2011

Изменение:

var dropdown = this;

На:

var dropdown = $(this);

change () - это метод объекта jQuery, поэтому вам нужно обернуть this при звонке на jQuery() или $().

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