2010-07-16 6 views
1

J'ai une table en HTML. J'ai rendu cette table aussi éditable en utilisant Javascript. Lorsque l'utilisateur clique sur une cellule, elle devient modifiable. Le problème ici est, quand la cellule est déjà éditable, si l'utilisateur clique de nouveau sur la cellule ...., quelques étiquettes et d'autres choses apparaissent. de nouvelles zones de texte apparaissent pour chaque clic.Problème dans une table modifiable en HTML

Comment cela a-t-il pu être évité?

J'utilise le code Javascript suivant.

function changeContent(tablecell) 
{ 
    //alert(tablecell.firstChild.nodeValue); 
    tablecell.innerHTML = "<INPUT type=text size=\"6\" name=newname onBlur=\"javascript:submitNewName(this);\" value=\""+tablecell.innerHTML+"\">"; 
    tablecell.firstChild.focus(); 
} 
function submitNewName(textfield) 
{ 
    //alert(textfield.value); 
    textfield.parentNode.innerHTML= textfield.value; 
} 
+0

Quels tags et autres choses? Vous devrez être plus précis ici, je pense. –

+0

S'il vous plaît modifier votre réponse et formater votre code, poster ainsi les éléments qui apparaissent lorsque vous cliquez de nouveau sur la cellule modifiable ... – Zuul

+0

Je suis désolé. Je pensais que le code était affiché dans le bon format. l'a modifié. – Rajkumar

Répondre

1

Si de nouvelles zones de texte apparaissent après chaque clic, votre code ne prend pas en charge le cas: si la cellule a une zone de texte d'entrée déjà, ne pas continuer à entrer HTML supplémentaire pour la zone de texte d'entrée lorsque l'utilisateur clique sur la cellule. Une façon d'éviter cela pourrait être de définir la classe de la cellule du tableau sur un nom de classe comme "editable" à la fin de votre fonction changeContent. Ensuite, vous pouvez avoir du code dans la même fonction qui ne mettra dans le HTML pour la zone de texte d'entrée si le tablecell.className n'est pas "modifiable". N'oubliez pas dans votre fonction submitNewName, de supprimer également le nom de classe "modifiable" pour la cellule une fois que l'utilisateur a terminé la modification.

Questions connexes