javascriptを使用して動的フィールドセットを生成しています。フィールドを追加するには、次の関数を使用します(この関数は実際には複数のフィールドを追加します)
//テストを追加
function addTest() {
var location = document.getElementById('addTestLocation');
var num = document.getElementById('addTestCount');
var newnum = (document.getElementById('addTestCount').value -1)+ 2;
num.value = newnum;
location.innerHTML += "<div id='testContainer_"+newnum+"'><label for='test_"+newnum+"'>Test name: </label><input type='text' name='test_"+newnum+"' id='test_"+newnum+"'/> <a href='javascript: removeTest("+newnum+")'>- Remove test</a><br/><br/><span id='addObjectLocation'></span><br/><select id='select_"+newnum+"'><option>True or False</option><option>Single choice</option><option>Multiple choice</option><option>Short definition</option><option>Fill in the blanks</option></select><input type='hidden' id='addObjectCount' value='0'/> <a href='javascript:addObject();'>+ add question</a><br/><br/><hr/><br/></div>";
}
追加しなければならないコードがたくさんあるので、innerHTML
代わりに使用します。この方法では、マークアップが非常に短くなります。append
さて、私の問題は、フィールドを追加(または削除)するたびに、動的に生成された他のデータのすべてのデータが失われることです。どうすればこれを修正できますか?値を保存してからすべてのフィールドに追加するのは、私の場合は非常に複雑です。何か案は?