javascript - 更改 'onchange' 的选择

标签 javascript html

我有一个带有 onchange 的选择框:

<select id="select" onchange="eventA();">

我想将“onchange”更改为其他内容,例如更改为 eventB();。

我试过这个,基于这篇文章:How to add an onchange event to a select box via javascript?

document.getElementById("select").onchange="eventB()";

但是,没有任何反应,onchange 没有改变。

有什么想法吗?

最佳答案

您好,您应该试试这段代码。

<html>
  <head>
  <title> Script </title>
  <script type='text/javascript'>
    function changeFirst(){
      alert('I am first');
    }
    
    function changeSecond(){
      alert('I am second');
    }
    
    function changer(){
      document.getElementById('selectinput').attributes.onchange.nodeValue = "changeSecond()";
    }
  </script>
  </head>
  <body onload="changer()">
    <select id="selectinput" onchange="changeFirst()">
      <option value="1"> One </option>
      <option value="2"> two </option>
      <option value="3"> three </option>
      <option value="4"> four </option>
      <option value="5"> five </option>
    </select>
  </body>
</html>

使用 jquery 而不是纯 javascript 有点容易。但是对于 javascript,您不能通过目录更改任何属性,例如 value 或 innerHTML。 document.getElementById('ELEMENT_ID') 将返回 html 标签而不是对象。您可以使用 document.getElementById('ELEMENT_ID').value = 'your_value' 更改值,但更改任何事件属性都不是这样完成的。 document.getElementById('ELEMENT_ID').attribute 将返回元素的所有已使用属性,您可以使用我在示例中向您展示的 nodeValue 更改它的值。

根据您的需要再澄清一下,如果您在选择框更改事件中编写此代码,而不是每次调用您的第一个事件时,例如如果我将 changer() 函数代码写入 changeFirst() 函数,那么选择框的更改事件将在第一次触发 changeFirst() 并且从下一次 changeSecond() 事件将触发。所以我建议你使用 jquery change event 而不是使用纯 javascript 来防止这种类型的混淆。

关于javascript - 更改 'onchange' 的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39886946/

相关文章:

html - 如何使用 Beautiful Soup 按文本内容选择 div?

用于验证地址的 JavaScript 正则表达式

JavaScript 正则表达式 : Make ungreedy

JavaScript - 如何在扩展错误时获取子类名称

javascript - 如何用两个图像保存 Canvas

javascript - 无法通过 JavaScript 调用淡入淡出 div

html - 添加css后无法点击控件

javascript - 如何在jquery中子串

javascript - 链接 promise ,但在失败时继续下一个 promise (并记录拒绝)

html - CSS样式导航按钮