2010-10-18 7 views
2

Normalement, une boîte de dialogue de téléchargement de fichier est appelée en cliquant sur le bouton créé par <input type="file"/>. Mais alors, je ne veux pas le champ de texte qui l'accompagne. Y a-t-il un moyen de se débarrasser du champ de texte? Ou existe-t-il un moyen alternatif d'ouvrir la boîte de dialogue de téléchargement de fichier sans utiliser <input/>?Comment supprimer un champ de texte d'une entrée de fichier HTML

+0

Duplicata de http://stackoverflow.com/questions/1084925/input-typefile-show-only-button? – Mischa

Répondre

1

Vous pouvez utiliser une alternative au flash. J'ai utilisé swfUpload, avec beaucoup de succès. Uploadify, est une alternative similaire. Les deux ont de bons ensembles de fonctionnalités, y compris les barres de progression et le téléchargement multiple.

1

Vous pouvez le remplacer par un bouton-poussoir comme indiqué ou vous pouvez masquer le bouton en plaçant votre propre bouton sur le dessus de l'élément d'entrée et ouvrir la boîte de sélection par un script.

Quelques exemples ici: inputfile

2

Ajoutez une entrée de fichier et définissez sa position assez loin.
Ajouter un bouton. boutons Set onclick $("#myFile").click(); : D

<input id="myFile" name="file" type="file" style="position:absolute;left:-10000px;top:-10000px;"> 

<button onclick="$('#myFile').click();">Browse</button> 
+0

Je suis sûr que cela ne fonctionne pas pour des raisons de sécurité. – alex

+0

Avez-vous essayé? fonctionne sur Chrome. –

+0

Cela fonctionne sur Chrome et IE mais rompt avec Opera et Firefox. – Dave

1

Vous pouvez ajouter votre propre bouton et le positionner sous le bouton de navigation avec CSS.

Définissez ensuite l'entrée de fichier pour avoir 0 opacité.

2

accord avec alex

<style> 
.file_wrap{ 
    background:url(file.jpg); 
    overflow:hidden; 
    width:30px; 
    height:10px; 
} 
.file_wrap input{ 
    opacity:0; 
    font-size:999px; 
    cursor:pointer; 
} 
</style> 
<div class="file_wrap"> 
    <input type="file" /> 
</div> 
0

Si vous utilisez jQuery, jetez un oeil à ce plugin - https://github.com/ajaxray/bootstrap-file-field

Ce petit plugin affichera le champ de saisie de fichier comme un bouton d'amorçage (aucun champ de saisie de texte), similaire dans tous les navigateurs et affichera les noms de fichiers sélectionnés (ou les erreurs de sélection) magnifiquement. Vérifiez leur démonstration en direct .

De plus, vous pouvez définir diverses restrictions à l'aide de simples attributs de données ou paramètres JS. e, g, data-file-types="image/jpeg,image/png" limitera la sélection des types de fichiers à l'exception des images jpg et png.

Questions connexes