【问题标题】:Javascript onchange function executes onload but not onchangeJavascript onchange 函数执行 onload 但不执行 onchange
【发布时间】:2018-06-10 02:49:11
【问题描述】:

我的这个表单选择的 onchange 函数正在执行 onload,但在更改表单中的选择时没有。我试过同时使用 onload 和 onclick。

我显然只处于调试实施阶段,一旦它工作,我会让它做其他事情。

HTML:

<select case="sel1" name="Sort1" id="Sort1">
    <option value="0">Fred</option>
    <option value="1">Ginger</option>
    <option value="2">Judy</option>
    <option value="3">Gene</option>
</select>

JavaScript:

window.onload = function() {
    document.getElementById('Sort1').onchange = ChgSort();
}

function ChgSort() {
    alert(document.getElementById('Sort1').value);
}

当我加载页面时,我会弹出当前选择值为 0 的警报弹出窗口。但是当我单击选择字段并更改选项时,没有任何反应。

我敢肯定,并且希望,这是一件愚蠢而愚蠢的事情,我只是盯着和调试同一个功能太久了......

救命!

【问题讨论】:

    标签: javascript forms dom onchange onload


    【解决方案1】:

    您的 Javascript 有:

    window.onload = function() {
        document.getElementById('Sort1').onchange = ChgSort();
    }
    

    window.onload 应该改成 window.onchange 就可以了

    【讨论】:

      【解决方案2】:

      你需要在线更改

              document.getElementById('Sort1').onchange = ChgSort();
      

      到这里

              document.getElementById('Sort1').onchange = ChgSort;
      

      onchange 应该是函数而不是返回值看下面的例子

      window.onload = function() {
          document.getElementById('Sort1').onchange = ChgSort;
      }
      
      function ChgSort() {
          alert(document.getElementById('Sort1').value);
      }
      <select case="sel1" name="Sort1" id="Sort1">
          <option value="0">Fred</option>
          <option value="1">Ginger</option>
          <option value="2">Judy</option>
          <option value="3">Gene</option>
      </select>

      【讨论】:

      • 发生这种情况你不讨厌吗???我知道只是盯着代码看,我错过了一些愚蠢的事情。
      • 专业人士可能会犯同样的错误,这就是为什么我们喜欢为您编写错误代码,并且您可以选择自己作为冠军来修复它:D
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 2019-09-20
      • 2013-01-25
      相关资源
      最近更新 更多