#jquery #asp.net-mvc-3 #model-view-controller
#jquery #asp.net-mvc-3 #модель-представление-контроллер
Вопрос:
У меня есть несколько списков выбора на странице. Все они названы в виде массива, чтобы они передавались обратно на контроллер в списке для viewmodel. Когда они отображаются, они выглядят как таковые:
<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. попробуйте использовать
dropdown.live('change', function() {})
Ответ №1:
Изменить:
var dropdown = this;
Для:
var dropdown = $(this);
change() — это метод объекта jQuery, поэтому вам нужно обернуть this
вызов в jQuery()
or $()
.