Come nome del valore vuoto nel selezionare?

Io uso simple_form nella mia app.

Come faccio a dare il valore vuoto nel mio seleziona un testo diverso rispetto a “” ?

Ho appena trovato un’opzione per includere vuota o non.

InformationsquelleAutor Ben | 2012-04-05

 

4 Replies
  1. 52

    Ben,

    Dipende da come si stanno costruendo le opzioni per selezionare. Se stai facendo come il codice riportato di seguito, basta passare una stringa in :include vuoto.

    select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, {:include_blank => 'Some text here'})

    Se stai impostando le opzioni con un options_for_select(), allora si può fare qualcosa di simile al seguente:

    options_for_select([["Dollar", "$"], ["Kroner", "DKK"]])

    Con il valore=”” essere il secondo valore nella matrice e il nome che viene visualizzato nel menu a tendina in fase di prima. Quindi nel tuo caso, si potrebbe cambiare la seconda risposta simile a questo:

    options_for_select([["Some text here", ""], ["Dollar", "$"], ["Kroner", "DKK"]])
    • Questo non è stato chiesto, ma se si desidera che l’opzione vuota, di non essere selezionabili è possibile aggiungere :include_blank => true, disabled: "", selected: "", placeholder: "Foo Bar"
    • Georgi ha una risposta migliore, qui di seguito. invece di include_blank, utilizzare prompt: 'Which person?' avrà un valore vuoto, ma il testo è di fornire. include_blank accetta solo un booleano — non accetta una stringa da visualizzare.
  2. 33

    Invece di

    :include_blank => true

    Provare

    :include_blank => "your text here"

    se questo è quello che stai cercando.

    • non proprio, che imposta l’etichetta, non il valore (attributo)
    • Anche se non è la risposta alla domanda – era la risposta alla mia domanda, come ho voluto impostare l’etichetta vuota – applausi.
    • Questo non funzionerà per select_tag metodi, ma funzionerà con select metodi. (E, sì, sono diverso). Utilizzando una stringa per il valore del include_blank solo fornire un’opzione vuota con nessuna stringa. Utilizzare prompt in questo caso.
  3. 22

    Se si utilizza il select_tag(name, option_tags = nil, options = {}) funzione, l’opzione corretta è :prompt => "Some text", invece di impostare un valore di stringa per select

    • Mi ha preso troppo tempo per capire che è diverso per select_tag rispetto a un tradizionale selezionare. Grazie.
    • tag si comporta in modo molto diverso in tutto il luogo. viaggi di me tutto il tempo, come bene.
    • Questo è assolutamente corretto e un po ‘ difficile da capire. select_tag si accettare un include_blank, ma NON visualizza il testo si passa come il valore di tale opzione. È necessario utilizzare prompt per che. Grazie @Georgi!
  4. 1

    È possibile eseguire questa operazione manualmente aggiungendo ["Your Text", ""] all’inizio dell’array passato a options_for_select, o aggiungere "<option value=\"\">#{h("Your Text"}</option>" all’inizio della stringa passata per select_tag.

Lascia un commento