繁体   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