2011-07-31 172 views
0

我將如何使用Javascript獲取此表單選項中的選項值?使用Javascript和表單獲取選擇選項的價值

我知道我可以使用:

document.customerInfo.cardType.selectedIndex == 4

但對我來說這不會工作。我有30多個,我真的不想編寫那麼多。無論如何,我可以得到選項的價值嗎?

<form id="teamSelect"><select name="team"> 
    <option value="TEN">Tennessee</option> 
    <option value="GB">Green Bay</option> 
    </select> 
    <input type="button" value="submit" onclick="games();"/> 
    </form> 

回答

2

的ID添加到您的選擇:

<select name="team" id="team"> 

然後做

document.getElementById("team").value 

這將返回TENGB

+0

元素已經有一個名稱,所以它可以被引用爲:'document.forms ['teamSelect']。team'。 – RobG

+0

@RobG:true,但我討厭DOM級別0,所以我選擇了DOM級別1解決方案。 – Domenic

0

獲取對錶單的引用:

var form = document.getElementById('teamSelect'); 

var form = document.forms['teamSelect'] 

,或者如果形式給出的名稱相同的ID:

var elements = form.elements; 
for (var i=0, iLen=elements.length; i<iLen; i++) { 
    // elements[i] is a form control, get its value and 
    // do whatever 
} 

注:

var form = document.teamSelect; 

然後在它的元素集合進行迭代對於選定元素,該值是當前選定選項的值。

雖然一個選項是應該始終要選擇(即應該有選擇的屬性,以便它是默認選中的選項),在省略和選擇可以沒有選擇的選項很多情況下。在這種情況下,其selectedIndex屬性將爲-1。

另請注意,所選選項的值應該是屬性的值,如果缺失,則爲text屬性的值(選項的文本)。然而,IE得到這個錯誤,如果沒有值屬性,返回一個空字符串。因此,要獲得選擇的值,您需要執行以下操作:

function getSelectValue(select) { 

    var idx = select.selectedIndex; 

    // If one has been selected, return its value or text 
    if (idx >=0) { 
    return select.options[idx].value || select.options[idx].text 

    // Otherwise none are selected - return empty string? 
    } else { 
    return ''; 
    } 
} 
相關問題