2011-01-31 43 views
3

我有一個(django的產生)形式具有下列內容:jquery的計數選擇輸入匹配所需值

<form action="./" id="my_form" method="post"> 
... 
<select name="object_0_status" id="id_object_0_status"> 
<option value="">---------</option> 
<option value="1">Online</option> 
<option value="2">Offline</option> 
<option value="3">Unknown</option> 
</select> 
<select name="object_1_status" id="id_object_1_status"> 
<option value="">---------</option> 
<option value="1">Online</option> 
<option value="2">Offline</option> 
<option value="3">Unknown</option> 
</select> 
<select name="object_2_status" id="id_object_2_status"> 
<option value="">---------</option> 
<option value="1">Online</option> 
<option value="2">Offline</option> 
<option value="3">Unknown</option> 
</select> 
    ... 
</form> 

我寫一個自定義的驗證方法(使用的JQuery驗證插件http://docs.jquery.com/Plugins/validation),該橫檢查表單上的不同條目。爲了做到這一點,我需要檢索其選定值設置爲'1'(例如在線)的選擇框的數量。

選擇框是由表單工廠生成的,所以它們會有一個可變數目。表單上還有其他選擇選項,這些選項不應該被統計 - 僅僅是結尾「_status」的選項。

這樣做最乾淨的方法是什麼?

感謝

回答

2

您可以使用ends with selector

alert($('select[id$=_status]').find('option[value=1]').length); 

這將通過與他們的IDS _status結束所有的選擇框,然後find是用來尋找option在其中,其值設置爲1

+0

如果選項雖然選擇了這個沒有找到......? – fearofawhackplanet 2011-01-31 12:51:20

+0

@fearofawhackplanet:選中的選項會給你1的長度,因爲只能選擇一個選項。儘管如此,可以使用`:selected`過濾器選擇器。 – Sarfraz 2011-01-31 13:00:23