2011-03-07 128 views
2

我有選擇標記,並且要檢查是否選擇了飛蛾。JavaScript - 檢查是否選擇了<select>標記的選項

<select name="Birth_Month"> 
    <option value="" SELECTED>- Month -</option> 
    <option value="January">January</option> 
    <option value="Fabruary">Fabruary</option> 
    <option value="March">March</option> 
    <option value="April">April</option> 
    <option value="May">May</option> 
    <option value="June">June</option> 
    <option value="July">July</option> 
    <option value="August">August</option> 
    <option value="September">September</option> 
    <option value="October">October</option> 
    <option value="November">November</option> 
    <option value="December">December</option> 
</select> 

所以做到這一點:

if (document.registration_form.Birth_Month.value === '') 
{ 
    alert('Please fill select Month!'); 
} 

但這JavaScript的一些選擇-S工作,併爲他們中的一些,其實不然。很明顯,當選擇「 - 月 - 」時,它會回傳「 - 月 - 」的空白字符串(「空字符串」)。我做錯了什麼?檢查標籤選擇的最佳方式是什麼?

回答

5

瀏覽器並不總是有一個< .Value屬性選擇> - 我們曾經有過拿到<選項>的價值:

var birthMonth=document.registration_form.Birth_Month; 
if(birthMonth.options[birthMonth.selectedIndex].value===''){ 

使用jQuery .VAL()現在。我不記得哪些瀏覽器缺少select.value屬性,也許這些瀏覽器太舊了,以至於我們不必再擔心它們。但jQuery不使用select.value - 它遍歷每個選項來查找選定的選項值。

當然,如果您知道總是隻有一個空白選項作爲第一個選項,請檢查selectedIndex == 0。

+0

+1! - 就是這樣,等到你想要從單選按鈕組中獲得值時! – 2011-03-07 20:19:20

0

我相信整數是選項值更好的做法。無論如何,下面的代碼片段不關心你的默認選項值是一個空字符串還是一個零值。

var birthMonth = document.registration_form.Birth_Month; 
if(birthMonth.options[birthMonth.selectedIndex].value === false){ 
    alert('Please fill select Month!'); 
}