Aller au contenu

onchange pour un input type='file'


Sujets conseillés

Posté

J'ai un soucis, voici mon js:

window.onload = startup;
function startup(){
listenchanges();
}
function listenchanges(){
inputs = document.getElementsByTagName("input");
for(i=0;i<inputs.length;i++){
if(inputs[i].getAttribute("type") == "file"){
inputs[i].onchange = change(this);
}
}
}
function change(id){
alert('changement de fichier')
}

Quand je charge la page pour la premiere fois, le message apparait, mais quand je change le fichier selectionner, le message n'apparait pas, comment réparer cela?

C'est interessant de savoir aussi que directement ecrit dans le input si je mets onchange="alert('ok')", le message fonctionne comme voulu, je pratique la separation script / html donc je tiens a garder la separation...

Posté

Salut,

peut être que le mot "change" est réservé a JS pour d'autres choses...

j'aurais déjà juste essaye de renommer la fonction change en change4 le temps d'un test.

En espérant aider..

b0b0

Posté

désolé pour la mauvaise tentative ci dessus ...

Par contre je pense avoir trouvé ton pb ;)

Voila le changement : inputs.onchange = function(){change(this.id)};

Bien sur tu peux jouer avec le this.id ;) mais c'est function(){} qui a tout fait fonctionner !

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>TEST</title>
<script type="text/javascript">
<!--
window.onload = startup;
function startup(){
listenchanges();
}
function listenchanges(){
inputs = document.getElementsByTagName("input");
for(i=0;i<inputs.length;i++){
if(inputs[i].getAttribute("type") == "file"){
inputs[i].onchange = function(){change(this.id)};
}
}
}
function change(id){
alert('changement de fichier '+id)
}

-->
</script>
</head>
<body>
<form action="#">
<input type="file" id="testFile1" value="" /><br />
<input type="file" id="testFile2" value="" /><br />
</form>
</body>
</html>

b0b0

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...