注册 登录
编程论坛 JavaScript论坛

onpropertychange事件执行两次怎么回事?

luo_luo 发布于 2018-10-30 09:29, 1759 次点击
<input type="text" name="coilNo"  onkeydown="getkeydown()" onpropertychange="getLength()"/>
function getLength() {
    var coilNo = document.getElementById("coilNo").value;
    alert(startTime1);
    alert(coilNo.length);
    if(coilNo.length > 0 && startTime1 > 10){
        document.getElementById('coilNo').value = "";
        alert(coilNo.length);
    }
}
var startTime;    //按下时间
var startTime1;    //两次按下时间差
//按下按键
function getkeydown(){
    if(startTime>0){
        startTime1 = new Date().getTime() - startTime;
    }else{
        startTime1 = 100;
    }
    startTime = new Date().getTime();
}
为什么getLength()会执行两次,将document.getElementById('coilNo').value = ""注释掉之后就执行一次了。
第一次执行两次时弹窗结果为100,1,100,0,1。
哪位大佬帮忙看看,谢谢!
1 回复
#2
icecool2018-10-30 10:48
document.getElementById('coilNo').value = ""
这一句改变了文本框的.TEXT属性,也会触发onpropertychange
1