2013-07-31 196 views
0

用戶在下拉框中選擇項目時是否存在特定事件?我正在創建一個使用多個下拉框的相當大的表單。在加載時,除第一個以外的所有內容都被禁用,因爲用戶選擇第一個選項,第二個框中的選項將使用AJAX進行更改,我希望刪除禁用的屬性。jQuery下拉選擇事件

$('#site_id').on('change', function(event) { 
    $('#access_type_id').removeAttr('disabled'); 
}); 

我遇到的麻煩是.change()似乎當下拉改變決策的選項下面啓用的下拉框之前,我確實希望他們被解僱。是否有一個替代事件可以用來代替更改,以便在用戶在前一個下拉菜單中選擇時只「啓用」表單域?

UPDATE

我設法通過不使用在所有的變化事件,並把我的removeAttr在我的AJAX調用的成功部分解決這個問題。下面是一個例子。這使我可以在填充其選項時啓用「下一個」下拉菜單。

$('#access_speed_id').on('select2-blur', function(event){ 
    $.ajax({ 
     async: true, 
     data: $('#access_speed_id').serialize(), 
     dataType: 'html', 
     success: function(data, textStatus) { 
      $('#cdr_id').removeAttr('disabled'); 
      $('#cdr_id').html(data); 
     }, 
     type: 'post', 
     url: '/services/specificCdrs' 
    }); 
}); 
+0

它有點迷惑你有什麼真正想要的?你可以設置一個jsfiddle或更詳細地解釋它 –

回答

3

試試下面的代碼:

<select id="drop1"> 
<option value="volvo">Volvo</option> 
<option value="saab">Saab</option> 
<option value="mercedes">Mercedes</option> 
<option value="audi">Audi</option> 
</select> 
<select id="drop2"></select> 

jQuery的

$(document).ready(function(){ 
$("#drop2").attr("disabled", true); 
$("#drop1").change(function(){ 
    $("#drop2").attr("disabled", false); 
    //Put your ajax code here and bind like below code 
    $("#drop2").append(new Option("option text", "value")); 
    $("#drop2").append(new Option("xxx","1"));   
}); 
}); 

演示:​​