首页 > 解决方案 > 事件不会触发

问题描述

我有一个有多个输入的表单。一种输入是用户可以输入 ID。我需要验证 ID 是否唯一。我想为 onchange 事件调用 JavaScript 函数。但是,我无法触发它。我有一个console.log,但是当我更改输入时它永远不会命中,所以我做错了什么。
这是我试图在更改时调用的函数

function checkUniqueID() {
  console.log("here");
  var $counter = 0;
  var tag = document.forms["userform"]["new_id"].value;
  while ($counter < $totalItems) {

  }
};
<div class="six wide field">
  <label for="ID">ID</label>
  <input type="text" id="new" name="new_id" placeholder="ID" onchange="checkUniqueID()">
</div>

我什至无法触发 console.log ("here")

标签: javascriptformsonchange

解决方案


HTML 属性在onchange输入失去焦点时触发。因此,如果您正确地拥有input#new_id这样的表格:

<form name="userform">
  <div class="six wide field">
  <label for="ID">ID</label>
  <input type="text" id="new" name="new" placeholder="ID">
 </div>
</form>

在脚本文件中添加一个 eventListener 就足够了。

document.userform.new_id.onchange=function(){
    alert("ID changed to: "+this.value);
};

使用 jQuery 就像这样简单:

$("#new").change(function(){
    alert("ID changed to: "+$(this).value;
}

这是一个工作小提琴:

https://jsfiddle.net/edbL3kgp/


推荐阅读