2012-09-24 10 views
13

Sto cercando di produrre una forma regolare SimpleFormModulo semplice: è possibile rimuovere le etichette e sostituirle con i segnaposto utilizzando le etichette i18n?

= simple_form_for [:hq, @team, @order] do |f| 
    .tickets 
    = f.select :tickets, :aaa => "aaa" 
    = render "ticket" 


    .details 
    .left 
     = f.input :address1 
     = f.input :address2 
     = f.input :state 
     = f.input :country 
     = f.input :email 
    .right 
     = f.input :comments 

Ma voglio gli ingressi non devono essere resi con un'etichetta, solo il titolo "Indirizzo 1" nel segnaposto.

So che posso farlo con f.input :address1, :placeholder => "whatever", :label => "" ma mi piacerebbe che fosse configurabile con un wrapper e prendere l'etichetta del modulo di valore i18n, non segnaposto.

+7

uso: label => false e non: label => "", quest'ultimo sarà ancora generare un tag label nel DOM. – mmvie

+0

Penso che [questo] [1] sia la risposta che stai cercando. [1]: http://stackoverflow.com/a/18199780/186145 – wspruijt

risposta

-2

Se si desidera utilizzare javascript, ecco un frammento di jQuery che fa il lavoro:

$.each($(".left .input"), function() { 
    var label = $("label",$(this)).text(); 
    $("label",$(this)).hide(); 
    $("input",$(this)).attr("placeholder",label); 
}); 

Il vantaggio principale utilizzando js per questo caso è che il risultato rimane screen reader compatibile (si leggerà il etichetta perché non eseguiranno il js).

+6

Non sono d'accordo con questo. Ci sono modi per farlo in forma semplice e senza javascript. – Senjai

+0

@Senjai vecchio commento lo so, ma potresti entrare in ulteriori dettagli o link su come potresti farlo invece? – Huw

+1

Le scuse ignorano questa soluzione tramite il collegamento duplicato sopra, vedere [qui] (https://stackoverflow.com/questions/18077082/how-to-use-placeholders-instead-of-labels-in-simple-form/18199780 # 18199780) – Huw

21

provare a fare quanto segue:

f.input :address1, placeholder: "Address Line 1", label: false 
Problemi correlati