我在一个页面上有几个选择列表。它们都以数组方式命名,以便它们以 View 模型的列表形式回发到 Controller 。当它们被渲染时,它们看起来像这样:
<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() 事件处理程序绑定(bind)到它们,以便我可以触发 .ajax 调用来根据该下拉列表的值填充另一个下拉列表,但绑定(bind)不起作用。 JS 看起来像这样:
$(document).ready(function () {
$('select[name$="OrderItemStatusId"]').each(function (){
//alert(this.name);
var dropdown = this;
dropdown.change(function() {
alert('testing ');
//GetOrderItemReasons(dropdown.val());
});
});
我收到的错误是“对象不支持此属性或方法”。但是,第一个警报清楚地显示该项目正在被选择,因为它正确显示了名称。
我在这里做错了什么?
最佳答案
更改:
var dropdown = this;
致:
var dropdown = $(this);
change()是 jQuery 对象的方法,因此您需要将 this
包装在对 jQuery()
或 $()
的调用中。
关于jquery - SELECT 列表的 JQuery 绑定(bind)有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7997491/