如何通过javascript将onchange事件添加到选择框?

时间:2009-10-27 04:47:14

标签: javascript javascript-events

我有一个脚本,我动态创建选择框。创建这些框时,我们希望将新框的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);

5 个答案:

答案 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);});

setAttribute

或尝试用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()" );