問題描述
我是 JavaScript 和 jQuery 的新手。我想顯示一個 combobox-A,它是一個 HTML <select>,其選定的 id 和其他位置在 onChange() 上。
如何通過其選擇的 id 傳遞完整的組合框,以及如何傳遞 onChange 事件的其他參數?
最佳解決方案
function getComboA(selectObject) {
var value = selectObject.value;
}
<select id="comboA" onchange="getComboA(this)">
<option value="">Select combo</option>
<option value="Value1">Text1</option>
<option value="Value2">Text2</option>
<option value="Value3">Text3</option>
</select>
上面的例子可以顯示 OnChange 事件上組合框的選定值。
次佳解決方案
在 jQuery 中如何做:
<select id="yourid">
<option value="Value 1">Text 1</option>
<option value="Value 2">Text 2</option>
</select>
<script src="jquery.js"></script>
<script>
$('#yourid').change(function() {
alert('The option with value ' + $(this).val() + ' and text ' + $(this).text() + ' was selected.');
});
</script>
你也應該知道 Javascript 和 jQuery 不一樣。 jQuery 是有效的 JavaScript 代碼,但並不是所有的 JavaScript 都是 jQuery 。您應該查找差異,並確保使用適當的差異。
第三種解決方案
在某些情況下可以使用另一種方法,將所選 OPTION 的值直接傳遞給如下功能:
<SELECT onChange="myFunction(this.options[this.selectedIndex].value)">
<OPTION value="1">Text 1</OPTION>
<OPTION value="2">Text 2</OPTION>
</SELECT>
希望它有助於某人。
第四種方案
jQuery 解決方案
How do I get the text value of a selected option
選擇元素通常有兩個要訪問的值。首先要發送給服務器的值很簡單:
$( "#myselect" ).val();
// => 1
第二個是選擇的文本值。例如,使用以下選擇框:
<select id="myselect">
<option value="1">Mr</option>
<option value="2">Mrs</option>
<option value="3">Ms</option>
<option value="4">Dr</option>
<option value="5">Prof</option>
</select>
如果您想要獲取字符串”Mr”(如果選擇了第一個選項)(而不是僅僅是”1″),則可以按以下方式進行:
$( "#myselect option:selected" ).text();
// => "Mr"
也可以看看
第五種方案
我發現 @ Piyush 的答案有幫助,只是為了添加它,如果你編程創建一個選擇,那麼有一個重要的方式來獲得這個行為可能不是很明顯。假設你有一個功能,你創建一個新的選擇:
var changeitem = function (sel) {
console.log(sel.selectedIndex);
}
var newSelect = document.createElement('select');
newSelect.id = 'newselect';
正常的行為可能就是説
newSelect.onchange = changeitem;
但是,這並不能讓您指定參數傳入,所以您可以這樣做:
newSelect.setAttribute('onchange', 'changeitem(this)');
您可以設置參數。如果你這樣做的第一種方式,那麼你會得到你的 onchange 功能的參數將依賴於瀏覽器。第二種方式似乎工作 cross-browser 很好。
第六種方案
你可以嘗試下面的代碼
<select onchange="myfunction($(this).val())" id="myId">
</select>
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。