2010-04-20 10 views
6

Aşağıda HTML kodumda bulunan seçenekler var:Açılır listenin seçili seçeneğinin JavaScript ile ilk olup olmadığını kontrol edin

 <label id="subn"> 
     <select name="subs" id="subs"> 
     <option value="nothing">Choose a Subject</option> 
     <option value="General Question">General Question</option> 
     <option value="MemberShip Area">MemberShip Area</option> 
     <option value="Others">Others</option> 
     </select> 
    </label> 

Kullanıcının ilk seçenek dışında bir seçeneği seçip seçmediğini kontrol edecek bir JavaScript kodu oluşturmak istiyorum.

İşte denedim:

if (document.getElementsByTagName('option') == "nothing"){ 
    document.getElementById("subn").innerHTML = "Subject is Required!"; 
    document.getElementById("subs").focus(); 
    return false; 
} 

cevap

11

Böyle denetleyebilirsiniz: Burada

Denedim budur Bu değeri aşağıdaki gibi yapın:

var sel = document.getElementById('subs'); 
if (sel.options[sel.selectedIndex].value == 'nothing') { 

İşaretlemenizi değiştirmek için etiket i Aksi takdirde bu bölüm

<select name="subs" id="subs"></select><label id="subn" for="subs"></label> 

: .innerHTML = "Subject is Required!"; silecektir senin Bu yapmalıyım <select> :)

+1

'document.getElementsByTagName ('subs')' yazdınız 'document.getElementById ('subs')' – RoToRa

+0

@RoToRa - Oops copy error, teşekkürler! ve sabit. –

+0

Yaptığınız için teşekkür ederiz, – Mahmoud

1

: Bu gibi yanında s

var index = document.your_form_name.subs.selectedIndex; 
var value = document.your_form_name.subs.options[index].value; 

if (value === "nothing"){ 
    // your further code here......... 
} 
0

document.getElementsByTagName('option') tüm option unsurların bir koleksiyon verir belge ve "nothing" bir dizedir. Bir koleksiyonun bir diziyle karşılaştırılması oldukça işe yaramaz.

document.getElementById("subn").innerHTML = "Subject is Required!"; ayarı select öğesini silecektir, böylece document.getElementById("subs") artık bir şey bulamaz.

if (document.getElementById("subs").selectedIndex <= 0) { 
    // nothing is selected 
} 

DÜZENLEME:<= 0 için > 0 değiştirildi

sadece şey seçilirse olmadığını bilmek gerekiyorsa

select elemanın selectedIndex özelliğini kontrol edin. Kullanıcının da bir şey seçmemesi durumunda kontrol edilmesi gerektiğini varsayardım.

+0

'if()' geri döndüğünüzde, eğer '> 0 'hiçbir şey ** seçiliyse, tersine kontrol etmek ister. –

+0

Eh, metinde "eğer kullanıcı ilkinden başka bir konu seçerse" yazdı, ama örneğinde ilkinin seçilip seçilmediğini kontrol etmeye çalıştı, bu yüzden biraz çelişki var. – RoToRa

+0

Bir mesaj ekliyor * bir şey seçmezlerse *, geriye doğrudur. Bu ** çok ** kodundan açık, karışıklığın nerede olduğundan emin değilim ... –