Tek bir tıklamayla bir form açılır kapanır <select>
s eklemek ve kaldırmak için çalışıyorum. Şu an sahip olduğum kod. Yemin ederim dün gece çalışmıştım, ama bu sabah projemde biraz daha çalışmaya gittiğimde, açılanlar doğru bir şekilde eklenemez/kaldırılamazdı.Açılır menüleri oluşturmak/açılan menüleri kaldırmak için JavaScript işlevi
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>
'Ne cookies_drop' var? – Mikey
"Doğru" ile ne demek istiyorsun? Hangi davranışları görüyorsun? "Cookies_drop" nedir? "counter" değerini artırıyorsunuz, ancak "this.counter" ı tanımladınız. Ayrıca, dropTest undefined olmamalıdır, çünkü "var dropTest = new DropDowns();" Aslında, muhtemelen sizi şaşırtıyor "yeni", ama sayaç mantığı eksik "bu" nedeniyle başarısız olacaktır –
Üzgünüz, ben soruları temizleyeceğim. cookies_drop bir dizidir. Bir php dizisinin json_encode kullanılarak cookie_drop'a "dönüştürüldüğü" bir php sayfasında bildirilir. Cookies_drop dizisi şu anda doğru şekilde dolduruluyor. Gördüğüm davranış, "çerez ekle" düğmesini tıkladığımda, forma yeni bir açılır menü eklenmediğidir. "This.counter" sorununa işaret ettiğiniz için teşekkür ederim, kodumu güncelleyeceğim ve nasıl gittiğini göreceğim. – Csw