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

use*_*413 34 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);
Run Code Online (Sandbox Code Playgroud)

o.k*_*k.w 38

这是基于W3C DOM Level 2事件规范附加事件的另一种方式:

  transport_select.addEventListener(
     'change',
     function() { toggleSelect(this.id); },
     false
  );
Run Code Online (Sandbox Code Playgroud)


rah*_*hul 31

transport_select.setAttribute("onchange", function(){toggleSelect(transport_select_id);});
Run Code Online (Sandbox Code Playgroud)

的setAttribute

或尝试更换onChangeonchange

  • 谢谢!将它从"onChange"更改为"onchange"修复了它. (3认同)
  • 这给了我一个错误“未捕获的语法错误:函数语句需要名称” (3认同)

Ign*_*ers 13

更换:

transport_select.onChange = function(){toggleSelect(transport_select_id);};
Run Code Online (Sandbox Code Playgroud)

有:

transport_select.onchange = function(){toggleSelect(transport_select_id);};
Run Code Online (Sandbox Code Playgroud)

关于' C '绞死 >> 关于' c '绞死


您也可以使用addEventListener.


小智 7

yourSelect.setAttribute( "onchange", "yourFunction()" );
Run Code Online (Sandbox Code Playgroud)

  • 那是 2020 年,早就该把带有 HTML 属性的绑定事件、基于表格的布局和没有文本的答案搁置起来了。使用“addEventListener”将行为与结构分离,并允许每个事件和元素有多个事件侦听器。 (3认同)
  • 您好,欢迎来到SO!您需要描述您的答案。另外,您需要回答问题本身。user77413 询问“如何通过 javascript 将 onchange 事件添加到选择框?” 并在他们的帖子中问道“有人可以告诉我我做错了什么吗?”。您需要在答案中解决这些问题。 (2认同)