2012-06-14 138 views
21

使用JQuery Mobile我有一個從數據庫動態填充的選擇框。截至目前,這個複選框的人口完美無缺。我添加了一個功能,它包含一個通過「點擊」事件調用功能的按鈕。這個函數的作用是知道這個特定的複選框是否已經被填充;如果沒有,那麼它就不會做任何事情,但否則它會順利運行。我的問題是確定這個選擇框是否爲空。如何使用JQuery/Javascript檢查選擇框是否爲空

以下是我處理的非常簡單的例子:

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

我的功能,它是由一個單獨的按鈕叫,看起來是這樣的:

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 
    } 
} 

不要擔心關於它做了什麼以及它是如何做到的。現在對我來說重要的是我不能檢查複選框是否爲空,我只是不知道該怎麼去做。我通過論壇和文檔閱讀了很多內容,但這樣做有很多含義,因爲它取決於實施本身。

例如使用document.getElementById(...)...不一定會返回false,這取決於您如何使用它。在jQuery中使用$("#someID")...也可能會產生所需的結果。我已經嘗試了許多不同的時間,你可以在註釋行中看到,所有這些都可以在if(...)聲明中進行評估。

對於如何實現這一點,您有任何建議或想法嗎?提前致謝!

回答

53

要檢查選擇框是否有值:

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

檢查是否選定值爲空:

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

我把答案給了你,因爲你在克勞迪奧之前得到了答案,但實際上克勞迪奧在你做了幾秒鐘之後也做對了......感謝你們兩個!我希望我能分裂獎勵。 – AGE

+0

後面的代碼不正確。事實上,如果你用一個選擇框嘗試它,你會收到null作爲val(),但@if(!$('#fruit_name').val())@返回TRUE。 – sentenza

+0

嗯,我試圖帶走我的downvote,因爲這是正確的,但stackoverflow不會讓我。很蹩腳。對於downvote很抱歉,它應該是upvote。 – gregblass

10

一種正確的方式來獲得選擇的值將

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

然後你應該做的

if(selected_value) { ... } 
2

另一種正確的方式來獲得選擇的值將通過這個選擇:

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

最適合你的!

相關問題