2013-08-26 195 views
5

我試圖鏈接選擇ChosenChained但我不確定是否正在執行.chosen().change()正確或如果我得到的錯誤是一個錯誤。鏈接選擇與選擇

下面是我得到了什麼:

<select id="Inputfield_date" name="date" data-placeholder="Select event date"> 
<option value=""></option> 
<option value="WA">WA</option> 
<option value="QLD">QLD</option> 
<option value="VIC">VIC</option> 
<option value="NSW">NSW</option> 
<option value="SA">SA</option> 
</select> 

<select id="Inputfield_code" name="code" data-placeholder="Response code"> 
<option value=""></option> 
<option value="601" class="WA">601</option> 
<option value="602" class="WA">602</option> 
<option value="402" class="QLD">402</option> 
<option value="403" class="QLD">403</option> 
<option value="301" class="VIC">301</option> 
<option value="302" class="VIC">302</option> 
<option value="201" class="NSW">201</option> 
<option value="203" class="NSW">203</option> 
<option value="501" class="SA">501</option> 
</select> 

$('#Inputfield_date').chosen().change(function() { 
    $("#Inputfield_code").chained("#Inputfield_date"); 
}); 

這給了我未捕獲的RangeError:最大調用堆棧大小超過

編輯:我現在還需要隱藏/顯示另一個字段,如果選擇了一個特定的選項,我不知道什麼是正確的方法是。

+0

這是一個關於SO的例子http://stackoverflow.com/questions/18441118/retrieve-values-from-dynamically-added-selects-using-jquery-in-php –

+0

我沒有看到Chosen用在那個例。 – Tyssen

回答

7

使用Chained文檔中的示例,我已經放置了一個example on jsfiddle

而且它實際上是相當簡單的,只是初始化鏈的,選上,你通常會做,然後觸發chosen:updated事件,如果的選擇變化之一:

var selects = $('#Inputfield_code, #Inputfield_date'); 
$('#Inputfield_code').chained('#Inputfield_date'); 
selects.chosen({width: '300px'}) 

selects.on('change', function(){ 
    selects.trigger('chosen:updated'); 
}); 

編輯:

對於你的第二個問題,我已經更新了小提琴:http://jsfiddle.net/koenpunt/Fzh9G/2/

選擇發送哪個選項旁邊的更改事件,所以檢查是否一個特定的選擇選擇n很簡單:

$('#series').on('change', function(event, data){ 
    // First check if data exists, because if the change event 
    // isn't triggered by Chosen `data` is undefined 
    if(data){ 
     if(data.selected == 'a5'){ 
      $('#submit').hide(); 
     }else{ 
      $('#submit').show(); 
     } 
    } 
}); 

正如你會發現,如果你選擇「奧迪」和「A5」按鈕將消失。

+0

太棒了,謝謝。 :) – Tyssen