私はこのコードを持っています:
function addFormControls() {
var e = document.getElementById("ProductsList");
var prodid = e.options[e.selectedIndex].value;
var prodvalue = e.options[e.selectedIndex].text;
if (num == 0) {
document.getElementById("ProductsPanel").innerHTML = '<h3>Products added to Variant</h3>';
}
if (num < 10) {
var boolCheck = checkArrayData(prodid);
if (boolCheck == false) {
document.getElementById("ProductsPanel").innerHTML = document.getElementById("ProductsPanel").innerHTML + prodvalue + '<input type="text" id="' + prodid + 'product" value="0" width="50px" maxlenght="2" /><input type="button" onclick="updateArrayData(\'' + prodid + '\', document.getElementById(\'' + prodid + 'product\').value);" value="Update Number" /><br />';
num++;
prodIdArray.push({
'key': prodid,
'value': prodvalue,
'num': 0
});
document.getElementById("productsArray").value = prodIdArray;
} else {
alert("Sorry product has already been added!");
}
}
}
これはdivタグを新しい情報で喜んで更新しますが、画面にテキストボックスを印刷するセクション(13行目)を見ると、これらのテキストボックスはユーザーによって更新されます。
つまり、テキストボックスが追加され、値が更新されます。
ただし、値が5のテキストボックスがある場合は、この関数を再度呼び出して別のテキストボックスを追加すると、前のテキストボックスの値が消去されます。
だから、どうすればこれを防ぐことができますか?divコントロールのループで値を取得し、この関数が呼び出された後にそれらを元に戻すために、いくつかのことを行う必要がありますか?!?