2011-06-15 9 views
0

J'essaie actuellement de relooker (eclipse) un élément fileupload sur mon site web avec ce reference. Tout va bien et le résultat est prometteur, quand je mets l'élément fileupload en dessous de ma nouvelle image alternative (comme indiqué dans le tutoriel mentionné plus haut). Maintenant, je veux placer l'élément fileinput ailleurs et lier une fonction de clic sur l'image à un clic sur l'élément fileinput pour déclencher une boîte de dialogue de navigateur de fichiers. Malheureusement, les $('input:file').click() ou $('input:file').trigger('click') ne fonctionnent pas.jquery: tir cliquez() sur l'entrée: fichier?

Je suis également intéressé par d'autres moyens de lancer une boîte de dialogue de fichier, sans un élément de téléchargement de fichier (c'est seulement pour le traitement javascript, pas de téléchargement sur le serveur).

Oh, il n'a pas besoin de fonctionner sur n'importe quelle version de IE.

+0

Si ce pas '$ ('entrée : fil e '). cliquez sur() '? (apostrophe après fichier) – shanethehat

+0

duplication possible de [entrée de fichier déclencheur Jquery] (http://stackoverflow.com/questions/793014/jquery-trigger-file-input) – kapa

+0

@bazmegakap yep manqué celui-là. –

Répondre

5

Il manque une citation sur vos deux exemples de code, essayez $('input:file').trigger('click') Cependant, pour autant que je sache, ce n'est pas possible de le faire, du moins de cette façon. C'est par la conception de cette façon, volontairement, pour des questions de sécurité.

Vous pouvez essayer de le faire en suivant le mouvement de la souris et en déplaçant l'entrée de fichier cachée au-dessus de la nouvelle image ou de tout ce que vous utiliserez pour styliser l'entrée.

+0

hmm, je n'ai pas remarqué ça. Tranchant! +1 –

3

Comment faites-vous en ce moment, pouvez-vous nous donner plus de code? Essayez également d'ajouter un identifiant unique à l'entrée du fichier et au champ que vous souhaitez déclencher. Par exemple:

<span id="browse">Click here to choose a file</span> 
<input type="file" id="file" /> 

Ensuite, essayez de faire:

$('#browse').bind('click', function(e) { 
    $('#file').click(); 
}); 
+0

cela a fonctionné pour moi même lorsque le fichier était caché. – Ketan

+0

mais lorsque vous essayez de copier le chemin d'accès fileupload à la zone de texte en utilisant l'événement 'change', cela ne fonctionne pas dans IE 8,9,10. – william

+0

id n'est pas une exigence, tout sélecteur correspondant à l'entrée fonctionnerait – challet

0
<div class="imageUploadInput"> 
    <img id="uploadImage" src="images/camera_icon.png" /> 
    <input type="file" name="thumb" id="uploadImageInput" /> 
</div> 

jQuery:

$('#uploadImage').livequery("click",function(){ 
    $('#uploadImageInput').trigger('click'); 
}); 

ou

$('#uploadImage').click(function(){ 
    $('#uploadImageInput').trigger('click'); 
});