2012-09-17 11 views
5

Sto sviluppando un'applicazione Rails e ho bisogno di mostrare/nascondere un determinato campo quando si fa clic su un pulsante di opzione.Rails mostra i campi quando il pulsante di opzione è selezionato

Sto usando javascript ma non riesco a farlo funzionare.

Qualche consiglio su come risolverlo?

Radio codice del pulsante

<%= radio_button 'relat', 'atu', 'yes' %> ATU 
<%= radio_button 'relat', 'atu', 'no' %> No ATU 

campo che va a mostrare quando il primo pulsante è selezionato

<div id="esatu" style="display:none"> 
<p> 
    <label for="relat_tipus_atu"> 
    Tipus ATU 
    </label> 
    <%= select_tag :tipus_id, "<option value=''></option>".html_safe + options_from_collection_for_select(@tipus, :id, :codi) %> 
</p> 

risposta

10

In primo luogo, date il vostro pulsanti di opzione alcuni nomi di classe, quindi puoi usarli con javascript più facilmente.

<%= radio_button 'relat', 'atu', 'yes', {:class => "relat__atu relat__atu_yes"} %> ATU 
<%= radio_button 'relat', 'atu', 'no', {:class => "relat__atu relat__atu_no"} %> No ATU 

Ora si collega un gestore di eventi all'evento di modifica. E alternare la visualizzazione dell'altro elemento, a seconda se il pulsante di opzione è il pulsante "sì".

$(".relat__atu").on("change", function(){ 
    $("#esatu").toggle($(this).hasClass("relat__atu_yes")); 
}); 
+0

egze, la tua soluzione ha funzionato perfettamente, non avevo capito che avevo bisogno di lezioni per far funzionare tutto. Ancora una volta, grazie mille! – Wiggin

+0

Non hai bisogno di classi per farlo funzionare. Puoi scrivere lo stesso semplicemente usando i nomi dei tag. Sarebbe solo un codice più brutto :) – egze

Problemi correlati