web-dev-qa-db-fra.com

ouvrir la boîte de dialogue de téléchargement de fichier en cliquant sur

Je dois ouvrir la boîte de dialogue de téléchargement de fichier en cliquant sur un autre bouton, c'est-à-dire que je masque le contrôle de téléchargement de fichier (visibilité: caché) et en cliquant sur un autre bouton, je veux ouvrir cette boîte de dialogue. Voici le code que j'ai:

<input type="file" style="visibility: hidden;" />

Voici le javascript:

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

Cela fonctionne bien dans Firefox 4 et IE8, mais dans Chrome12, cela ne fonctionne pas, c'est-à-dire que la boîte de dialogue n'est pas ouverte. Une idée pourquoi?

23
Niraj Choubey

Testé aujourd'hui le code simple donné dans la question et la situation a changé:

  • IE9: fonctionne
  • Chrome23: fonctionne
  • Firefox15: fonctionne

Il n'y a qu'un seul catch-on IE le .click () est une opération de blocage alors que sur d'autres navigateurs ce n'est pas le cas.

8
Knaģis

Dans votre exemple, votre entrée de fichier n'avait pas d'identifiant, mais vous essayez de la référencer avec #input. Cela fonctionne pour moi:

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

Vous devez positionner l'entrée [fichier] juste au-dessus de votre contrôle personnalisé. Et puis liez à son onclick.

Augmentez également la taille de la police, car seule cette façon vous permet d'augmenter sa hauteur.

0
gaRex