2012-06-14 10 views
21

JQuery Mobile'ı Kullanma Veritabanından dinamik olarak doldurulmuş bir seçim kutum var. Şu an itibariyle bu onay kutusunun nüfusu kusursuz bir şekilde çalışıyor. Bir 'on click' olayıyla bir işlevi çağıran bir düğme içeren işlevsellik ekledim. Bu işlevin görevi, bu belirli onay kutusunun doldurulup doldurulmadığını bilmek; Eğer değilse, sadece bir şey yapmayacaktır, aksi takdirde sorunsuzca çalışacaktır. Sorunum, bu seçim kutusunun boş olup olmadığını belirliyor. Ayrı bir düğmeden denirJQuery/Javascript kullanarak seçme kutusunun boş olup olmadığını nasıl kontrol edin

<li> 
    <label for="fruit_name">Fruit</label> 
    <select name="some_fruit" id="fruit_name" onclick="populate_box('fruit', this);"> 
    </select> 
</li> 

Benim işlevi şöyle görünür: Burada

ben uğraşıyorum ne çok basitleştirilmiş bir örnektir

function isSelextBoxEmpty(selectBoxId) { 
    var selected_value = $('#fruit_name'); 

    /* More options... still testing the proper way: 
    var selected_value = $('#fruit_name').text; 
    var selected_value = $('#fruit_name').value; 
    var selected_value = $('#fruit_name').length; 
    var selected_value = $('#fruit_name option:selected', this); 
    var selected_value = document.getElementById('fruit_name'); 
    var selected_value = document.getElementById('fruit_name').length; 
    var selected_value = document.getElementById('fruit_name').value; 
    var selected_value = document.getElementById('fruit_name').innerHTML; 
    */ 

    if(selected_value) { 
     alert("NOT null, value: " + selected_value); 
     //do something 
    } 
    else { 
     alert("null, value: " + selected_value); 
     //do something 
    } 
} 

Üzülme Bunun ne yaptığını ve nasıl yaptığını. Şu anda benim için önemli olan, onay kutusunun boş olup olmadığını kontrol edemem. Bunun nasıl yapılacağından emin değilim. Forumlar ve belgelerle çok şey okudum, ancak uygulamanın kendisinde olduğu için bunu yapmanın pek çok anlamı var.

Örneğin, document.getElementById(...)... kullanımı yanlış bir şekilde döndürülemeyecek ve nasıl kullandığınıza bağlı olacaktır. Ayrıca jQuery'de $("#someID")... kullanılması istenen sonuçları vermeyebilir veya üretmeyebilir. Zaten yorumlanmış satırları görebileceğiniz gibi birçok farklı zamanlarda denedim, hepsi if(...) deyiminde değerlendirilebilir.

Bunu gerçekleştirmeye yönelik herhangi bir öneriniz veya fikriniz var mı? Şimdiden teşekkürler!

cevap

53

seçme kutusu herhangi bir değer olup olmadığını kontrol etmek için yapmalıdır:

if($('#fruit_name').has('option').length > 0) { 

kontrol etmek için seçili değerin boş olup olmadığı:

if(!$('#fruit_name').val()) { 
+1

Yanıtı size verdim çünkü Claudio'dan hemen önce anladın, ama aslında Claudio da birkaç saniye sonra doğru yaptı ... Her ikinizden de TEŞEKKÜRLER! Keşke ödülü dağıtmak isterdim. – AGE

+0

Son kod doğru değil. Infact, eğer bir select box ile denerseniz, null değerini val() olarak alırsınız, ancak @if (! $ ('# Fruit_name'). Val()) @, TRUE değerini döndürür. – sentenza

+0

Evet, çünkü bu doğru değil çünkü downvote'u almaya çalışıyorum, ama stackoverflow bana izin vermiyor. Güzel topal. Reddedilene üzüldüm, bu bir not olmalı. – gregblass

10

Tek doğru yolu değeri

var selected_value = $('#fruit_name').val() 

olacağını seçilmek için Ve sonra

if(selected_value) { ... } 
2

Başka doğru yolu seçilmiş değer, bu seçici kullanılarak olurdu almak için: sizin için en iyi

$("option[value="0"]:selected") 

!

İlgili konular