Page 1 sur 1
Fonction .click() javascript ne fonctionne pas sous Chrome
Posté : 24 févr. 2012, 15:37
par MyUpload
Bonjour à tous, alors voilà j'ai un problème en Javascript concerçant un input file que je veux accéder via un bouton
Voici les codes
function GetFile() {
elem = document.getElementById('hiddenfile');
elem.click();
document.getElementById('selectedfile').value = elem.value;
}
function notEmpty(id, message)
{
elem = document.getElementById(id);
if (elem.value.length == 0)
{
alert(message);
elem.focus();
return false;
}
return true;
}
<form method="POST">
<input type="file" id="hiddenfile" style="display:none" />
<input type="text" onclick="GetFile()" placeholder="Sélectionner un fichier..." id="selectedfile" />
<input type="button" id="file" value="Naviguer" onclick="GetFile()" />
<div class="clear"></div>
<input type='text' placeholder="Description du fichier..." value="" />
<input type='submit' id="send" value="Envoyer" onclick="notEmpty('selectedfile', 'Veuillez sélectionner un fichier à héberger')" /><br />
</form>
De plus lorsque avec firefox, oui ça marche avec, la valeur du input type file ne se met pas directement dans le selectedfile!
Mais le plus important c'est que rien ne se passe lorsque je clique sur Naviguer
Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 16:24
par Thibaud C
.click() est à la base une fonction de IE, qui a surement été ajoutée sur FF, mais pas sur chrome.
Pour ma part je te conseil de faire du Jquery pour ce cas la
Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 16:43
par MyUpload
Si c'est du genre
$('').click(function() { } );
j'ai déjà essayé !
Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 16:54
par Thibaud C
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<input type="file" id="monInputFile" style="visibility:hidden"/>
<input type="button" style="border:1px solid #000;width:100px;height:30px;background-color:#CCC;" onclick="$('#monInputFile').click();"/>
T'as surement du essayé comme ça alors

?
Ou encore comme ça avec des functions :p ?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
function loadfile()
{
$('#monInputFile').click();
}
</script>
<input type="file" id="monInputFile" style="visibility:hidden"/>
<input type="button" id="monButton" style="border:1px solid #000;width:100px;height:30px;background-color:#CCC;" onclick="loadfile();"/>
Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 17:03
par MyUpload
J'aimerai que mon input soit en display: none; en visibility hidden, il garde la meme taille et déforme donc la page
Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 17:07
par Thibaud C
Hum oui, je vois l'origine du problème j'avais pas fais attention, ben ça, faut y mettre un coup de css

Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 17:08
par MyUpload
ça veut dire que je fais height: 0; margin: 0; des trucs comme ça ?
Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 17:10
par Thibaud C
style="visibility:hidden;width:0px"
A tout problème il y a des solutions

Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 17:12
par MyUpload
J'ai également ajouté un height: 0px; ^^
Mais merci, juste à cause d'un display: none, cela ne fonctionnait pas!
Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 17:14
par MyUpload
Sinon, j'ai un problème de valeur
voici le code que j'utilise
function GetFile() {
elem = document.getElementById('hiddenfile');
$('#hiddenfile').click();
document.getElementById('selectedfile').value = elem.value;
}
Dans mon formulaire, j'ai un input type texte mais le problème c'est que la valeur du type input file ne se met pas directement !
Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 17:23
par Thibaud C
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#monInputFile').bind('change',function(){
$('#maText').val($('#monInputFile').val());
});
$('#monButton').bind('click',function(){
$('#monInputFile').click();
});
});
</script>
<input type="file" id="monInputFile" style="visibility:hidden;width:0px"/>
<input type="text" value="" id="maText" />
<input type="button" id="monButton" style="border:1px solid #000;width:100px;height:30px;background-color:#CCC;"/>
Le jquery pur, c'est quand même bien plus simpatosh

.
Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 20:08
par MyUpload
J'ai un problème de nouveau, j'ai quelque chose qui s'affiche : C:/fakepath/fichier.txt
Re: Fonction .click() javascript ne fonctionne pas sous Chro
Posté : 24 févr. 2012, 22:10
par Thibaud C
C'est quand tu as trop d'icone sur le desktop il le met dans le fakepath, c'est une sorte d'extention du bureau
