2011-11-03 36 views
4

我在頁面上有幾個選擇列表。它們都以數組形式命名,以便它們以視圖模型列表的形式回傳給控制器。當他們被渲染,他們看起來像這樣:對於SELECT列表的這個JQuery綁定有什麼問題?

<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()事件處理程序綁定到他們,所以我可以觸發阿賈克斯調用,以填補在此基礎上一值的另一個下拉列表中,但綁定不起作用。該JS是這樣的:

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

我收到的錯誤是「對象不支持此屬性或方法」。但是,第一個警報清楚地顯示該項目正在被選中,因爲它正確顯示了名稱。

我在這裏做錯了什麼?

+0

嘗試使用'dropdown.live('change',function(){})' –

回答

9

變化:

var dropdown = this; 

要:

var dropdown = $(this); 

change()是一個jQuery對象的一個​​方法,所以你需要在呼叫包thisjQuery()$()