Ik ben bezig met een formulier waarbij de gebruiker een set enquete vragen kan invullen en vervolgens doorgaan.
Omdat de hoeveelheid vragen kan verschillen wil ik deze met javascript toevoegen.
innerHTML herlaad de string waardoor alle ingevulde veld waardes verdwijnen.
Nu is het stukje formulier wat groter dan 1 div met 1 input field, dus om het te schrijven met create Element wil ik liever voorkomen.
Ik heb het nieuwe block in een javascript variable:
Als ik de code direct aanroep met appendChild dan krijg ik geen fouten maar de code verschijnt niet. De code dient eerst een node te worden. Nu heeft Javascript wel een createTextNode, deze geeft de code weer en de veld waardes blijven bewaard.
echter wordt de code letterlijk weergegeven: <div id="formBlock">
Een str.replace werkt niet als de text in de node zit en deze functie converteer nu juist de < en >.
Is er een methode om de code toe te voegen zonder alle element apart te schrijven in Javascript?
Omdat de hoeveelheid vragen kan verschillen wil ik deze met javascript toevoegen.
innerHTML herlaad de string waardoor alle ingevulde veld waardes verdwijnen.
Nu is het stukje formulier wat groter dan 1 div met 1 input field, dus om het te schrijven met create Element wil ik liever voorkomen.
Ik heb het nieuwe block in een javascript variable:
JavaScript:
1
| var nextQuestion = "<div id=\"formBlock\"> <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td colspan=\"2\" ><h2>Question {questionCounter}</h2></td> </tr> <tr> <td width=\"100\" valign=\"top\">Question:</td> <td><textarea name=\"question_{questionCounter}\" cols=\"30\" rows=\"3\" wrap=\"physical\" id=\"question_{questionCounter}\" onKeyDown=\"countCharacters('{questionCounter}')\"></textarea> <sup> <span id=\"charleftq_{questionCounter}\">255</span> characters left!</sup></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td>Answer 1: </td> <td><input name=\"answer_{questionCounter}-1\" type=\"text\" id=\"answer_{questionCounter}-1\" size=\"30\" maxlength=\"100\"> <input name=\"answercorrect_{questionCounter}\" type=\"radio\" value=\"1\" checked=\"checked\" /></td> </tr> <tr> <td>Answer 2: </td> <td><input name=\"answer_{questionCounter}-2\" type=\"text\" id=\"answer_{questionCounter}-2\" size=\"30\" maxlength=\"100\"> <input name=\"answercorrect_{questionCounter}\" type=\"radio\" value=\"2\" /></td> </tr> <tr> <td>Answer 3: </td> <td><input name=\"answer_{questionCounter}-3\" type=\"text\" id=\"answer_{questionCounter}-3\" size=\"30\" maxlength=\"100\"> <input name=\"answercorrect_{questionCounter}\" type=\"radio\" value=\"3\" /></td> </tr> <tr> <td>Answer 4: </td> <td><input name=\"answer_{questionCounter}-4\" type=\"text\" id=\"answer_{questionCounter}-4\" size=\"30\" maxlength=\"100\"> <input name=\"answercorrect_{questionCounter}\" type=\"radio\" value=\"4\" /></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td colspan=\"2\"><strong>Additional options </strong></td> </tr> <tr> <td>Display randomly: </td> <td><input name=\"random_{questionCounter}\" type=\"checkbox\" id=\"random_{questionCounter}\" value=\"1\"></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td><a onClick=\"moveDown();\" id=\"moveBox\">««</a><a id=\"moveBox\">[Done]</a><a onClick=\"CheckQuestion('{questionCounter}');\" id=\"moveBox\">»»</a></td> </tr></table> </div>"; |
Als ik de code direct aanroep met appendChild dan krijg ik geen fouten maar de code verschijnt niet. De code dient eerst een node te worden. Nu heeft Javascript wel een createTextNode, deze geeft de code weer en de veld waardes blijven bewaard.
echter wordt de code letterlijk weergegeven: <div id="formBlock">
Een str.replace werkt niet als de text in de node zit en deze functie converteer nu juist de < en >.
Is er een methode om de code toe te voegen zonder alle element apart te schrijven in Javascript?