Styling bouton de téléchargement de fichier pour simple_form_for avec Bootstrap dans Rails 3
À l'aide de simple_form_for, Bootstrap et Rails 3. Dans un formulaire:
<%= f.input :upload, label: 'PDF file:' , input_html: {accept: ('application/pdf') } %>
Je ne sais pas comment je ferais ce style de sorte que la "choisissez un fichier" bouton peut avoir une classe différente ('btn btn-primary').
En outre, lors de l'utilisation de Bootstrap au moins, son sévèrement mal alignées par défaut. Voir image jointe.
Enfin, comment puis-je redéfinir le texte de "Aucun fichier choisi" à "a Choisi le fichier" quand il n'y a pas encore ajouté, et de montrer le nom du fichier quand il y en a un.
source d'informationauteur tibbon
Vous devez vous connecter pour publier un commentaire.
C'est comment je le fais:
Ajouter un bouton pour déclencher le fichier de la boîte de dialogue parcourir
Dans votre JS (Café w/jQuery), passer le clic du bouton d'affichage sur le fichier d'entrée et lorsqu'ils sélectionnent un fichier de déposer le nom de fichier dans l'écran de champ de texte (je baisse le chemin de sorte que je ne vois pas C:\FakePath....)
Cela a très bien fonctionné pour moi et ne nécessite HTML
J'ai couru à travers et je suis en utilisant Jasny de l'extension de Bootstrap 3. Il semble bien fonctionner jusqu'à présent.
Pas de JS nécessaire, du pur css
scss
html /slim
Je recommande l'utilisation de la boussole pour la compatibilité du navigateur
@Rafaelfranca dit que vous ne pouvez pas le style
file
d'entrée, mais vous pouvez ajouter votre propre touche qui sera en cliquant sur votre cachée bouton d'origine. Voir l'exemple ici http://jsfiddle.net/rUdf2/6/Chaque Navigateur a un autre type de fichier d'entrée bouton de champ et cela en fait une douleur. Vous pouvez jouer un peu avec les css. Cela m'a donné une base de style avec JS, sans le désagrément "Aucun fichier choisi" texte en chrome et Safary:
Sinon, la meilleure solution est de le cacher et de montrer un faux qui intercepte le cliquez:
http://duckranger.com/2012/06/pretty-file-input-field-in-bootstrap/
À l'égard de la question de savoir comment montrer qu'un fichier a été téléchargé, une solution de base avec jquery file upload est de détecter le téléchargement complet de l'événement et de remplacer une partie de votre texte avec un message de succès (Le nom exact du fichier, je crois qu'il n'est pas possible d'obtenir avec les navigateurs modernes):
En résumé, une solution de base consiste à utiliser du javascript dans vos biens:
Pas de fantaisie, shiz requis:
HTML:
JS:
ATTENTION: Les trois éléments de formulaire en question DOIT être frères et sœurs les uns des autres (.fichier-image choisie .fichier-image-bouton .fichier-image)
Si vous êtes en utilisant Bootstrap, des Formes Simples, Jasny, et de Nouveau, ce poste peut vous intéresser refile simple_form méthode non attachment_field