[DOM] Incompatibilité DOM avec IE
Bonjour a tous.
Je suis en train de réaliser une page html qui peut s'apparenter à du e-commerce. Je dispose d'une tableau de produit avec, sur chaque ligne, un champs texte concernant la quantité du produit concerné. Ce champs txt est modifiable avec deux boutons "plus" et "moins" pour incrémenter ou décrémenter la valeur de ce champs.
A chaque fois que le champs est modifié, l'objet en question est ajouté dans un tableau récapitulatif.
Mon problème est que le script que je vous propose si dessous marche sous firefox mais pas sous IE. J'aurai voulu savoir si vous pouviez m'aider à débusquer l'erreur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| <script language="javascript">
function addNB(ref,lib){
document.forms["form1"].elements["nb"+ref].value = parseInt(document.forms["form1"].elements["nb"+ref].value) + 1 ;
if(document.getElementById("enfant"+ref) != null){
var nouveau = document.createTextNode(document.forms["form1"].elements["nb"+ref].value);
document.getElementById("quantite"+ref).replaceChild(nouveau,document.getElementById("quantite"+ref).firstChild);
}else{
var ligne = document.createElement("tr");
var colonne = document.createElement("td");
var quantite = document.createElement("td");
var id = document.createAttribute("id");
var id2 = document.createAttribute("id");
id.nodeValue = "enfant"+ref;
id2.nodeValue = "quantite"+ref;
ligne.setAttributeNode(id);
quantite.setAttributeNode(id2);
var texteprecedent = document.createTextNode(lib);
var quantitetxt = document.createTextNode(document.forms["form1"].elements["nb"+ref].value);
quantite.appendChild(quantitetxt);
colonne.appendChild(texteprecedent);
ligne.appendChild(quantite);
ligne.appendChild(colonne);
document.getElementById("commande").appendChild(ligne);
}
}
function subNB(ref){
if(document.forms["form1"].elements["nb"+ref].value > 0) {
if(document.forms["form1"].elements["nb"+ref].value > 1){
var quantitetxt = document.createTextNode(parseInt(document.forms["form1"].elements["nb"+ref].value) - 1);
var nodeQuantite = document.getElementById("quantite"+ref);
nodeQuantite.replaceChild(quantitetxt,nodeQuantite.firstChild);
document.forms["form1"].elements["nb"+ref].value = parseInt(document.forms["form1"].elements["nb"+ref].value) - 1 ;
}else{
var enfant = document.getElementById("enfant"+ref);
var table = document.getElementById("commande");
table.removeChild(enfant);
document.forms["form1"].elements["nb"+ref].value = parseInt(document.forms["form1"].elements["nb"+ref].value) - 1 ;
}
}
}
</script> |
Voila, merci d'avance pour votre aide.