让事件监听器触发

Geo*_*rge 0 javascript

我有一个脚本,我正在与PHP表单一起使用.我正在尝试获取一个计数器字段,我在表单上填写员工ID字段填写下面一秒后计算我的代码.

<script type="text/javascript">

var counter = 0;
var timer;
var employee = document.getElementsByName("employeeID")[0];

var employeeVal = document.getElementsByName("employeeID")[0].value;

employee.addEventListener("onchange", startCount);

function countUP () {
    counter = counter + 1; //increment the counter by 1
    document.getElementsByName("timer_container")[0].value = counter;
 }

 function startCount () {
    timer=setInterval('countUP()', 1000 );
 }

 function readonly() {
     document.getElementsByName("timer_container")[0].readOnly = true;
 }

</script>
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的函数来查看事件监听器是否正在触发.我也试过使用不同的事件,onclick,onblur并没有任何运气.我已经采用了计时器功能,并将其设置为直接在HTML上的body标签中加载,并且可以正常工作.但是,只要有人将信息输入到员工字段中,我就需要这样做.

Sco*_*cus 5

首先,使用on时不要在事件名称中使用.addEventListener.该on前缀只是联事件与HTML事件属性结合(这就是为什么它在为你工作<body onload=...>).无论如何,不​​应再使用内联事件HTML属性.所以,你的行应该是:

employee.addEventListener("change", startCount);
Run Code Online (Sandbox Code Playgroud)

如果您希望在输入数据时触发事件,请使用input事件而不是change事件.

employee.addEventListener("input", startCount);
Run Code Online (Sandbox Code Playgroud)