我有一個下拉列表作爲表單的一部分。它調用一個JavaScript函數作爲它的動作,其內容是幾個字符串之一。如何獲取HTML下拉框的內容?
在該函數中,我需要獲取用戶選擇的字符串。我遇到了一個函數,可以讓我得到所選項目的索引號,但是由於列表的內容可能有所不同,所以它實際上是無用的。有沒有一種方法可以讓我得到用戶輸入的實際字符串,可能是DOM和getElementById()
,還是使用JQuery?
我考慮過使用文本框,但是這會引發與界面相關的錯誤。
我有一個下拉列表作爲表單的一部分。它調用一個JavaScript函數作爲它的動作,其內容是幾個字符串之一。如何獲取HTML下拉框的內容?
在該函數中,我需要獲取用戶選擇的字符串。我遇到了一個函數,可以讓我得到所選項目的索引號,但是由於列表的內容可能有所不同,所以它實際上是無用的。有沒有一種方法可以讓我得到用戶輸入的實際字符串,可能是DOM和getElementById()
,還是使用JQuery?
我考慮過使用文本框,但是這會引發與界面相關的錯誤。
不太清楚你想要什麼,但是從我也許this is it明白:
HTML
<select>
<option value="1">This is the first one</option>
<option value="2">This is the second one</option>
</select>
的Javascript
$('select').on('change', function() {
alert($(this).find('option:selected').text());
})
編輯: 你似乎想要t他選擇的文本,而不是價值。
秒編輯: 在OP中使用Rob的建議,所以我們不需要迭代。
HTML
<select name="myselect" id="myselect">
<option value="alpha">one</option>
<option value="beta">two</option>
<option value="gamma">three</option>
</select>
JS
var mySelect = document.getElementById('myselect'); //get our select by its ID
mySelect.addEventListener('change', function(evt){
return evt.target.options[evt.target.selectedIndex].text;
});
注意的addEventListener不會在Internet Explorer 8的工作,下面,所以你需要使用的attachEvent。這應該會給你一個不錯的主意。 更多參考見https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
您在這裏使用一些模棱兩可的術語,你不顯示的代碼,這只是我們的化合物挑剔的困難,你需要什麼。是否需要獲取'.on('change')''
這似乎是正確的。 – CalvinCopyright
您可以使用'selectElement.options [selectElement.selectedIndex] .text'在所有瀏覽器中獲取所選選項的文本,其中* selectElement *是對select元素的引用。請注意,如果未選擇任何選項,則所選索引將爲-1,因此您可能首先要檢查'selectElement.selectedIndex> = 0'。 – RobG