5
我試圖添加和刪除下拉菜單<select>
s到按鈕單擊窗體上。這是我目前的代碼。我可以發誓我昨晚做了這個工作,但是當我今天早上去我的項目上工作一些時,下拉不會正確添加/刪除。JavaScript函數生成下拉菜單/刪除下拉菜單
function DropDowns(){
this.counter = 0;
this.addDropdown = function (divname) {
var newDiv = document.createElement('div');
var html = '<select name="cookie' + this.counter + '">', i;
for (i = 0; i < cookies_drop.length; i++) {
html += "<option value='" + cookies_drop[i] + "'>" + cookies_drop[i] + "</option>"
}
html += '</select>';
newDiv.innerHTML = html;
document.getElementById(divname).appendChild(newDiv);
this.counter++;
}
this.remDropdown = function() {
$('#dropdowns-container').find('div:last').remove();
this.counter--;
}
}
var dropsTest = new DropDowns();
HTML:
<form action='' method=post id="dropdowns-container">
<button id="add_cookie" type="button" onclick="dropsTest.addDropdown('dropdowns-container');">add cookie</button>
<button id="rem_cookie" type="button" onclick="dropsTest.remDropdown();">remove cookie</button>
<input name="cookies" type=submit value="submit">
</form>
什麼'cookies_drop'? – Mikey
「正確」是什麼意思?你看到什麼行爲?什麼是「cookies_drop」?你正在遞增「counter」,但你定義了「this.counter」。此外,dropTest應該是未定義的,因爲你沒有做「var dropTest = new DropDowns();」 事實上,這可能是你搞砸了,但你的計數器邏輯將失敗,因爲缺少「這個」的 –
對不起,我會澄清問題。 cookies_drop是一個數組。它是在php頁面聲明的,使用json_encode將php數組「轉換」爲cookies_drop。 cookies_drop數組當前正確填充。我看到的行爲是,當我點擊「添加cookie」按鈕時,沒有新的下拉列表被添加到表單中。感謝您指出「this.counter」問題,我將更新我的代碼並查看它是如何發生的。 – Csw