我有一个脚本,我动态创建选择框。创建这些框时,我们希望将新框的onchange事件设置为指向名为toggleSelect()的函数。
我似乎无法正确创建onchange事件的语法。有人能告诉我我做错了什么吗?它不会抛出错误,但也不起作用。
col = dataRow.insertCell(0);
var transport_select = document.createElement('select');
transport_select.id = transport_select_id;
transport_select.options[0] = new Option('LTL', 'LTL');
transport_select.options[1] = new Option('FTL', 'FTL');
transport_select.onChange = function(){toggleSelect(transport_select_id);};
col.appendChild(transport_select);
答案 0 :(得分:38)
以下是基于W3C DOM Level 2 Events Specification附加事件的另一种方式:
transport_select.addEventListener(
'change',
function() { toggleSelect(this.id); },
false
);
答案 1 :(得分:30)
添加
transport_select.setAttribute("onchange", function(){toggleSelect(transport_select_id);});
或尝试用onChange
onchange
答案 2 :(得分:12)
取代:
transport_select.onChange = function(){toggleSelect(transport_select_id);};
使用:
transport_select.onchange = function(){toggleSelect(transport_select_id);};
on C 'hange >> on c 'hange
您也可以使用addEventListener。
答案 3 :(得分:1)
如果您使用的是prototype.js,那么您可以这样做:
transport_select.observe('change', function(){
toggleSelect(transport_select_id)
})
这消除了(如希望)跨浏览器
中的问题答案 4 :(得分:1)
yourSelect.setAttribute( "onchange", "yourFunction()" );