J'ai un formulaire HTML. Lorsque vous cliquez sur le bouton, une fonction JavaScript ajoute un nouveau champ. J'essaie d'avoir la fonction ajouter également une «étiquette» pour le terrain.
J'ai essayé d'utiliser document.createeelement ("label"), mais cela ne me permet pas de changer le InnerHTML (ou peut-être que je le fais mal ..), ni ajouter une fermeture p>
Voici mon code. Merci!
Instance de var = 2; p> p> p>
3 Réponses :
function newTextBox(element) { instance++; // Create new input field var newInput = document.createElement("INPUT"); newInput.id = "text" + instance; newInput.name = "text" + instance; newInput.type = "text"; var label = document.createElement("Label"); label.htmlFor = "text" + instance; label.innerHTML="Hello"; instance++; document.body.insertBefore(document.createElement("BR"), element); document.body.insertBefore(newInput,element); document.body.insertBefore(label, newInput); Note that for attribute of the label tag, corresponds to the property htmlFor fo the label object in javascript
Vous ne pouvez pas utiliser étiquette.for code>. La réponse de Proto Bassi est correcte.
Réellement. Ces deux réponses sont erronées à certains égards. Ils préconisent tous les deux à l'aide d'innerhtml qui est mauvais mais plus important, le 'for' est défini à l'aide de label.htmlfor
L'exemple de Vincent ne fonctionne pas.
Essayez ceci: p>
C'est la bonne réponse. L'attribut pour code> doit être défini à l'aide de
setattribute code>.
-1 pour la suggestion de la création DOM et ensuite l'utilisation innerhtml au lieu de document.createtextNode
@Rafe, veuillez donner un exemple sur la manière dont vous définirez le type sur "L'étiquette" et comment vous allez définir un attribut sur un texte de texte. Je ne pense pas que votre commentaire est de toute façon utile.
<div id="somediv"> some div </div> <script> var instance = 0; function newTextBox(element){ instance++; // Create new input field var newInput = document.createElement("INPUT"); newInput.id = "text" + instance; newInput.name = "text" + instance; newInput.type = "text"; var newlabel = document.createElement("Label"); newlabel.setAttribute("for","text" + instance); newlabel.innerHTML = "Here goes the text"; document.getElementById("somediv").appendChild(newlabel); document.getElementById("somediv").appendChild(newInput); } </script>
Publiez votre code où vous avez essayé de faire un
document.createelement ('étiquette') code> afin que nous puissions le déboguer.
Désolé, l'a supprimé parce que je pensais que c'était inutile: var label = document.createeelement ("label"); label.htmlfor = newinput.id; label.value = "prénom";
Il n'y a pas de telle chose que
label.value code>.