108 votes

Comment supprimer l'infobulle "Aucun fichier choisi" d'une saisie de fichier dans Chrome ?

Je voudrais supprimer l'infobulle "Aucun fichier choisi" d'une saisie de fichier dans Google Chrome (je constate qu'aucune infobulle ne s'affiche dans Firefox).

Notez que je ne parle pas du texte contenu dans le champ de saisie, mais de l'info-bulle qui apparaît lorsque vous passez la souris sur la saisie.

J'ai essayé sans succès :

$('#myFileInput').attr('title', '');

1 votes

Essayez peut-être d'ajouter un espace dans la valeur de l'attribut : attr('title', ' '). L'infobulle sera toujours visible, mais avec un contenu vide.

1 votes

Vérifier ma réponse. utiliser 'titre' : 'espace'.

0 votes

Peut-être que cette réponse peut vous aider. stackoverflow.com/a/25825731/1323461

76voto

Dwayne Forde Points 352

Pour moi, je voulais simplement que le texte soit invisible et que le bouton natif du navigateur soit toujours utilisé.

input[type='file'] {
  color: transparent;
}

J'aime toutes les suggestions d'Undefined, mais j'avais un cas d'utilisation différent. J'espère que cela aidera quelqu'un dans la même situation.

3 votes

Ça n'a pas enlevé le "aucun fichier choisi" pour moi.

8 votes

Ceci me débarrasse du "aucun fichier choisi".

0 votes

@MEM, quel navigateur utilisez-vous ? Cela fonctionne pour moi sur Chrome (avec quelques modifications car je ne veux pas seulement que le texte disparaisse).

66voto

Vohuman Points 79122

Il s'agit d'une partie native de la webkit et vous ne pouvez pas le supprimer. Vous devriez penser à une solution de fortune comme couvrant o cacher les entrées du fichier.

A hacky solution :

input[type='file'] {
  opacity:0    
}

<div>
    <input type='file'/>
    <span id='val'></span>
    <span id='button'>Select File</span>
</div>   

$('#button').click(function(){
   $("input[type='file']").trigger('click');
})

$("input[type='file']").change(function(){
   $('#val').text(this.value.replace(/C:\\fakepath\\/i, ''))
})    

Violon

0 votes

Wow, c'est une mauvaise nouvelle... Y a-t-il une documentation disponible qui mentionne ce problème (je veux dire, le fait que vous ne pouvez pas supprimer cette infobulle) ?

0 votes

@antur123 "No file chosen" comme le bouton "back and forth" du navigateur ne fait pas partie du DOM, JavaScript n'y a pas accès, pour cette raison je ne pense pas qu'il existe une documentation sur ce problème.

6 votes

L'info-bulle est toujours affichée lorsque vous passez la souris sur le bord inférieur de l'entrée. "Opacité : 0" ne résout pas le problème.

8voto

jbier Points 31

Vous pouvez désactiver l'infobulle en définissant un titre avec un espace sur les navigateurs webkit comme Chrome et une chaîne vide sur Firefox ou IE (testé sur Chrome 35, FF 29, IE 11, safari mobile).

$('input[type="file"]').attr('title', window.webkitURL ? ' ' : '');

0 votes

Merci pour l'édition. J'aimerais trouver une solution sans wedkitURL car il est déprécié.

0 votes

Cette réponse est la seule qui ait fonctionné pour moi, il suffit de remplacer la détection du navigateur par celle fournie dans le document stackoverflow.com/questions/9847580/

4voto

jameswakefield Points 1

C'est une question délicate. Je n'ai pas trouvé de moyen de sélectionner l'élément "aucun fichier choisi". J'ai donc créé un masque en utilisant le pseudo-sélecteur :after.

Ma solution nécessite également l'utilisation du pseudo-sélecteur suivant pour styliser le bouton :

::-webkit-file-upload-button

Essayez ça : http://jsfiddle.net/J8Wfx/1/

FYI : Cela ne fonctionnera que dans les navigateurs webkit.

P.S si quelqu'un sait comment afficher les pseudo-sélecteurs webkit comme celui ci-dessus dans l'inspecteur webkit, faites-le moi savoir.

0 votes

Cela n'a pas fonctionné pour moi sur chrome (le bidule lui-même affiche l'infobulle "aucun fichier choisi").

3voto

Ryan McDonough Points 4813

Pour ce faire, vous devrez personnaliser considérablement le contrôle.

Veuillez suivre le guide à l'adresse suivante : http://www.quirksmode.org/dom/inputfile.html

1 votes

J'allais poster ceci, en plus du fait qu'il existe un plugin JQuery qui fait un peu la même chose. filamentgroup.com/lab/

1 votes

@RyanMcDonough, je ne vois pas d'astuces pour masquer l'info-bulle dans le lien que vous avez fourni, y a-t-il quelque chose qui m'échappe ?

0 votes

Mes excuses, j'aurais dû clarifier. Comme il n'y a aucun moyen de masquer cette infobulle, vous devrez personnaliser le contrôle du formulaire de saisie pour obtenir un résultat similaire. En quelque sorte, il s'agit de pirater le contrôle original.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X