簡體   English   中英

原生JavaScript選擇onchange this.value undefined

[英]Native JavaScript select onchange this.value undefined

我有一個由php文件生成的select標簽,如果可以避免,我寧願不用改變。 我也沒有能力使用jQuery來解決我的問題。 所以這是我試圖設置onchange事件的方式:

var d = document.getElementById('lang_choice');
d.onchange = function(){
    window.alert(this.value);
}

彈出框只是說未定義。 我檢查了html,它在選項標簽中設置了值屬性。 所以我猜我誤解了這個系統,一些解釋會很好。

var d = document.getElementById('lang_choice');
d.onchange = function(){
    window.alert(this.options[this.selectedIndex].value);
}

它適用於舊版瀏覽器。

雖然你的方法應該工作。 代碼中的其他地方一定有錯誤。 檢查控制台。

一旦DOM對象可用,請確保綁定onchange事件並確保選項標記值屬性。

<select id="lang_choice">
  <option value="en">English</option>
  <option value="es">Spanish</option>
</select>

這對我有幫助。

對於選擇:

$('select_tags').on('change', function() {
    alert( $(this).find(":selected").val() );
});

對於收音機/復選框:

$('radio_tags').on('change', function() {
    alert( $(this).find(":checked").val() );
});

IE有一個錯誤(不確定版本),onchange將在設置值之前觸發,因此使用如下所示

var d = document.getElementById('lang_choice');
d.onchange = function(){
   var th = this;
   setTimeout(function(){ window.alert( th.value ); }, 10);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM