11
votes

Comment envelopper chaque sélection de Date_Sélectionnez avec un DIV dans les rails?

J'utilise Ruby sur Rails 3 pour créer un formulaire pour l'utilisateur, où il peut sauver sa date de naissance. Toutes les actions autour du contrôleur et du modèle fonctionnent parfaitement. Mais je rencontre des problèmes avec le style de cette forme.

Pour chaque sélection de mes formulaires, je m'enveloppe de la diveuve, de la style, ce qui fonctionne normalement bien. Le problème avec date_select est qu'il génère trois boîtes de sélection qui sont toutes enveloppées dans une div. AS l'exemple dans HAML, le code pour le champ ressemble à ceci: xxx

.Select_wrapper crée une div des trois cases de sélection, mais j'ai besoin de tous Sélectionnez la case pour avoir sa propre enveloppe. Y a-t-il un moyen de résoudre ce problème?

Toute aide serait appréciée. Merci.


1 commentaires

Merci pour l'indice. J'oublie de répondre à quelques questions, où j'ai trouvé des solutions mies et écrites et accepté la réponse que j'ai trouvée et utilisée, alors mon taux devrait être de nouveau bien.


5 Réponses :


9
votes

Méthode 1 (difficile) fort>

remplacer le code code> Date_select code> pour gérer cette instance spéciale pour vous: https://github.com/Rails/Rails/blob/Master/actionView/LIB/AdMAIPT_VIEW Aides / Date_Helper.rb # L283 P>

Méthode 2 (facile) strong> P>

Utilisez jQuery: p>

// Find all select boxes that have an ID attribute containing "birthday"
// and wrap a div tag around them with a certain class
$('select[id*="birthday"]').wrapAll('<div class="select_wrapper">');


3 commentaires

La méthode normale "Wrap" n'a pas fonctionné, mais je l'ai eu avec Wradall, donc merci pour l'aide.


Le lien n'est plus valide.


@ XON1C mis à jour. N'hésitez pas à modifier n'importe quel message pour résoudre un problème à l'avenir.



9
votes

J'utilise une solution impliquant le paramètre : date_sparator . Quelque chose sur les lignes de ceci: xxx


0 commentaires

8
votes

Ce n'est pas le plus joli, mais ça a bien fonctionné pour moi ... xxx

était ce que je voulais que tout soit emballé. Fondamentalement, il suffit de nous assurer que la date_separator était la fermeture de mon étiquette et de l'ouverture de mon prochain, et assurez-vous que l'ouverture de ma première balise était avant la date_sélectionne et la fermeture de ma dernière balise était après la date_select.

0 commentaires

0
votes

dans Comment laisser coutume Formuilder Wrap DateTime_Select sélectionne par exemple Un div? je fais fondamentalement faire face au même problème.

JavaScript n'est pas une option pour moi et le date_separator hack is ... un piratage :)

Je suis venu avec la solution suivante (travaille pour moi, dans HAML). Je pense que c'est la solution la plus propre si loin, mais repose sur des rails internes. xxx

Tout ce que vous avez à faire est d'ajuster le préfixe ( @USAGE dans mon cas) et le nom champ = nom (nom d'attribut, @ usage.startime / starttime < / code> dans mon cas). Dans cet exemple, j'enveloppe les champs de date correspondants dans une div des classes "Select".

Pour référence, il existe de nombreuses autres options à jouer, voici des liens vers le code correspondant:


0 commentaires

0
votes

J'ai eu un problème similaire, mais je voulais que chaque boîte de sélection ait sa propre classe.

Voici ce que j'ai fait (en utilisant erb non haml): p>

<%= select_month(@person.birthday, {field_name: "birthday(2i)", prefix: "person", prompt: true}, class: "class_name") %>


0 commentaires