2010-11-21 10 views
0
aracılığıyla sokulmuş giriş alanını nasıl kaldırılır

Birisi nasıl alanı kaldırmak için yeni işlev eklemek için bana yardım edin, benJavaScript

<script language="javascript"> 
fields = 0; 
function addInput() { 
    if (fields != 10) { 
     var htmlText = "&nbsp;&nbsp;<input type='text' name='friends[]' value='' size='auto' maxlength='45' /><br />"; 
     var newElement = document.createElement('div'); 
     newElement.id = 'new_field'; 
     newElement.innerHTML = htmlText; 

     var fieldsArea = document.getElementById('new_field'); 
     fieldsArea.appendChild(newElement); 
     fields += 1; 

    } else { 
     alert("Only 10 fields allowed."); 
     document.form.add.disabled=true; 
    } 
} 
</script> 

aşağıdaki gibi yeni bir alan eklemek js komut fonksiyonu var ama bazı yardımcı olur ihtiyacım Alanı kaldırmak için yeni fonksiyonlar eklemek, Herhangi bir öneri ve işaretçi için minnettar olurum. removeChild() fonksiyonu burada removeChild() - mozilla developer

Düzenleme Veya hakkında burada okuyun

+0

çıkarılmak üzere onları easyer olacaktır. – Bakudan

+0

"newElement.id =" new_field "; 'olamaz, çünkü sayfadaki her bir kimlik benzersiz olmalıdır. Kimliğinize özgü bir şey ekleyin. Bunun gibi bir şey öneririm: fonksiyonun dışında bir değişken sayı = 0; her yeni giriş sayımı eklediğinizde ++; 'newElement.id = 'new_field' + count' – cristian

+0

Güzel Öneri Ahtapot-Paul, iyi i Değiştir: newElement.id = 'new_field'; ile: newElement.id = 'new_field' + (alanlar + 1);, bu da IE dışında çoğu tarayıcıda iyi çalışır, ama ben doğru olduğunu emin değilim, daha fazla işaretçiye ihtiyacım var, Çok teşekkürler – jones

cevap

0

Birincisi, zaten senin koduyla bakın bir sorun var. Her yeni alanın kimliğini geçersiz HTML olan ve sorun isteyen aynı değere ayarlıyorsunuz. Bunu düzeltdiğinizden emin olun.

DOM öğelerinin .removeChild method'ları istediğinizdir. .removeChild, bir düğümün (öğe veya metin) DOM ağacından (aslında belgenin içinde yer alan öğeler kümesi) çıkarılması, ancak düğümün içeri aktarılması, aslında bu öğenin bir alt öğesi ise, aksi halde bir hata oluşur.

kolaylıkla kendi kabın last child bularak son alanı kaldırabilirsiniz: Eğer "div" için bazı kimlikleri eklerseniz

function removeLastField() { 
    var fieldsArea = document.getElementById('new_field'), 
     lastChild = fieldsArea.lastChild; 
    if(lastChild) { 
     fieldsArea.removeChild(lastChild); 
     fields -= 1; 
    } 
} 
+0

Merhaba idealmachine, ben yaptım açıklama, ancak henüz benzersiz bir kimliğe ayarlamak için işe yaramış gibi görünmüyor, değiştirmeyi deneyin: ewElement.id = 'new_field'; ile: newElement.id = 'new_field' + 1; bu doğru? Lütfen daha fazla öneri vermekten çekinmeyin ve şimdiden teşekkürler – jones

+0

Tüm new'ler new_field1 olacak çünkü 'newElement.id = 'new_field' + 1 'koymak doğru değil. Kimlikleriniz new_field1, new_field2 gibi bir şey olmalıdır. – cristian