Récupérer les données d'un input dans javascr
csi_bern
-
csi_bern -
csi_bern -
Bonjour, j'ai un problème avec le code suivant :
<script type="text/javascript">
function getObj (name) {
if (document.getElementById) {
this.obj = document.getElementById(name);
this.style = document.getElementById(name).style;
} else if (document.all) {
this.obj = document.all[name];
this.style = document.all[name].style;
} else if (document.layers) {
this.obj = document.layers[name];
this.style = document.layers[name].style;
}
}
function calcul(victoire, defaite, points) {
alert(victoire);
victoire = new getObj(victoire);
defaite = new getObj("defaites'.$ligne['id'].'");
points = new getObj("points'.$ligne['id'].'");
var res;
var vic = parseInt(victoire.value);
var def = parseInt(defaite.value);
if (vic + def == 0) {
res = "Erreur";
} else {
res = vic / (vic + def);
}
points.value = res;
}
</script>
<input type="text" style="width:50; text-align:center" name="victoires1" value="1" onChange="calcul(victoires1, defaites1, points1);">
J'ai inséré l'alerte pour savoir à quel moment ça foirait. Cette dernière me donne la réponse suivante "[object HTMLInputElement]" et la console d'erreur de Firefox me donne "document.getElementById(name) is null".
Est-ce que quelqu'un pourrait me proposer une solution à mon problème.
Merci d'avance.
A savoir : le code de l'input est généré par php, j'ai plusieurs input qui se nomme donc victoires1, victoires2, ...
<script type="text/javascript">
function getObj (name) {
if (document.getElementById) {
this.obj = document.getElementById(name);
this.style = document.getElementById(name).style;
} else if (document.all) {
this.obj = document.all[name];
this.style = document.all[name].style;
} else if (document.layers) {
this.obj = document.layers[name];
this.style = document.layers[name].style;
}
}
function calcul(victoire, defaite, points) {
alert(victoire);
victoire = new getObj(victoire);
defaite = new getObj("defaites'.$ligne['id'].'");
points = new getObj("points'.$ligne['id'].'");
var res;
var vic = parseInt(victoire.value);
var def = parseInt(defaite.value);
if (vic + def == 0) {
res = "Erreur";
} else {
res = vic / (vic + def);
}
points.value = res;
}
</script>
<input type="text" style="width:50; text-align:center" name="victoires1" value="1" onChange="calcul(victoires1, defaites1, points1);">
J'ai inséré l'alerte pour savoir à quel moment ça foirait. Cette dernière me donne la réponse suivante "[object HTMLInputElement]" et la console d'erreur de Firefox me donne "document.getElementById(name) is null".
Est-ce que quelqu'un pourrait me proposer une solution à mon problème.
Merci d'avance.
A savoir : le code de l'input est généré par php, j'ai plusieurs input qui se nomme donc victoires1, victoires2, ...
Configuration: Windows XP Internet Explorer 7... / Firefox 3.0.7
1 réponse
-
Tu mélange PHP et Javascript :
defaite = new getObj("defaites'.$ligne['id'].'"); points = new getObj("points'.$ligne['id'].'");
sinon essaye ceci pour comprendre le fonctionnement :
<script type="text/javascript"> function test(elem) { alert(elem.value); } </script> <input type="text" style="width:50; text-align:center" name="victoires1" value="1" onChange="test(this);" />