我有一个由php文件生成的select标签,如果可以避免的话我宁愿不要改变。我也没有能力使用jQuery来解决我的问题。所以这就是我试图设置onchange事件的方式:
var d = document.getElementById('lang_choice');
d.onchange = function(){
window.alert(this.value);
}
弹出框只是说未定义。我检查了html,它在选项标签中设置了值属性。所以我猜我误解了这个系统的一些东西,一些解释会很棒。
答案 0 :(得分:2)
var d = document.getElementById('lang_choice');
d.onchange = function(){
window.alert(this.options[this.selectedIndex].value);
}
它适用于较旧的浏览器。
虽然你的方法应该有用。代码中的其他地方一定有错误。检查控制台。
答案 1 :(得分:0)
请确保在DOM对象可用后绑定onchange事件并确保选项标记值属性。
<select id="lang_choice">
<option value="en">English</option>
<option value="es">Spanish</option>
</select>
答案 2 :(得分:0)
这对我有帮助。
选择:
$('select_tags').on('change', function() {
alert( $(this).find(":selected").val() );
});
收音机/复选框:
$('radio_tags').on('change', function() {
alert( $(this).find(":checked").val() );
});
答案 3 :(得分:-1)
IE有一个错误(不确定版本),onchange会在设置值之前被触发,所以请使用如下所示
var d = document.getElementById('lang_choice');
d.onchange = function(){
var th = this;
setTimeout(function(){ window.alert( th.value ); }, 10);
}