2013-02-18 148 views
3

我正在使用下面的選擇器來獲取預填充值的所有表單輸入。用於選擇具有空值屬性的元素的jQuery選擇器?

$('input[value!=""]'); 

這個偉大的工程,所以我想我可以套用同樣的邏輯我使用下面的選擇器中選擇元素,但它似乎是選擇在Chrome中所有的選擇元素。

$('select[value!=""]'); 

以下是兩種類型的表格上選擇的的一個示例:

<select name="phone2_type" id="phone2_type"> 
    <option value="">Select one:</option> 
    <option value="HOME">Home</option> 
    <option value="CELL">Cell</option> 
    <option value="BUSN">Business</option> 
</select> 

<select name="state" id="state"> 
    <option value="">Select one:</option> 
    <option value="XX">Outside USA/Canada</option> 
    <option value="AL" selected="selected">Alabama</option> 
    <option value="AK">Alaska</option> 
    ... 
</select> 

我想選擇第二選擇,因爲它具有與該選擇=「選擇了」已選擇的值

回答

0
$('select').has('option[selected="selected"]') 

將獲得選擇元素。 jsFiddle example

+1

這不適用於dinamically添加選擇的FF。這是一個已知的錯誤。這就是爲什麼JQuery添加_:selected_使用(我認爲)_ selectselection_屬性的select元素 – 2013-02-18 18:14:18

+0

@PaoloCasciello- OP在哪裏提供動態添加選擇? – j08691 2013-02-18 18:15:26

+1

你是對的,但他也沒有提及瀏覽器..;)讓我們寫出最有用的答案。 :) – 2013-02-18 18:17:08

6

value不是select標記的屬性。

所以你需要嘗試:

var emptySelect = $('select').filter(function() { 
        return $.trim($(this).val()) == ''; 
        }); 
+0

簡單,乾淨,直接。更不用說它也適用於「輸入」。 – Omar 2014-04-23 22:31:07

1

對於選擇你需要使用一個特殊的選擇提供的jQuery:選擇

所以

$('#state option:selected').val() 

是當前選擇的值。

如果您需要在選擇元素做一些自理,你可以這樣做:

$('#select option:selected').parents('select').dosomething(...) 
相關問題