2013-08-26 15 views
5

Próbuję połączyć zaznaczenia z Chosen i Chained, ale nie jestem pewien, czy poprawnie wprowadzam .chosen(). Change() lub jeśli błąd, który dostaję, jest błędem.Łańcuch wybiera z wybranym

Oto co mam:

<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"); 
}); 

który daje mi Uncaught RangeError: Maksymalny rozmiar stosu wywołań przekroczyła.

EDYCJA: Teraz muszę również ukryć/pokazać inne pole, jeśli wybrana jest konkretna opcja i nie jestem pewien, jakie jest właściwe podejście do tego.

+0

to jest przykład na SO http://stackoverflow.com/questions/18441118/retrieve-values-od-dynamicznie-wybieram-wybieranie-jakich-w-pliku –

+0

Nie widzę, żeby Chosen był używany w tym przykład. – Tyssen

Odpowiedz

7

Posługując się przykładem z przykutej dokumentacji, umieściłem example on jsfiddle.

I to jest rzeczywiście dość proste, wystarczy zainicjować przykuty i wybrany jako normalnie można zrobić, a następnie wywołać zdarzenie chosen:updated jeśli jedna ze zmian wybiera:

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

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

EDIT:

Na twoje drugie pytanie zaktualizowałem nieco skrzypce: http://jsfiddle.net/koenpunt/Fzh9G/2/

Wybrany wysyła, która opcja jest wybrana wraz ze zdarzeniem zmiany, więc sprawdzanie, czy określone opcjo Wybór n jest prosty:

$('#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(); 
     } 
    } 
}); 

Jak zauważysz, jeśli wybierzesz "Audi" i "A5" przycisk zniknie.

+0

Niesamowite, dzięki. :) – Tyssen

Powiązane problemy