input输⼊框的事件触发及其顺序
<input id="field" type="text" />
<input type="text" onkeyup="if(!/^\d+$/.test(this.value)) { this.value='';}" />
<script>
function g(type,selector){
if(type=="id") ElementById(selector);
if(type=="class") ElementsByClassName(selector);
if(type=="tag") ElementsByTagName(selector);
if(type=="tag") ElementsByTagName(selector);
}
g("id","field").onkeyup=function(){
console.log("onkeyup");
}
g("id","field").onkeypress=function(){
console.log("onkeypress");
}
g("id","field").onkeydown=function(){
console.log("onkeydown");
}
g("id","field").onfocus=function(){
console.log("onfocus");
}
g("id","field").onchange=function(){
console.log("onChange");
}
g("id","field").oninput=function(){
console.log("onInput");
}
g("id","field").onblur=function(){
console.log("onblur");
}
setTimeout(function(){ //通过脚本改变
g("id","field").value="lla";
},2000)
运⾏结果:
情况⼀:只点击不输⼊(没有键盘事件)
情况⼆:点击加输⼊
onpress之后⼜出发了oninput事件blur事件
情况三:输⼊完了,⿏标离开这个input
触发了onchange和onblur事件
情况四:复制黏贴!
情况五:通过脚本添加
总结⼀下:
1.当你⿏标点击进去时触发onfocus(聚焦),离开时触发onblur(失焦),这两个当中会触发onchange事件,也就是聚焦-->失焦有个onchange
2.当往⽂字框输⼊⽂字时会触发oninput事件,不管你是键盘输⼊还是复制黏贴
3,通过脚本添加⽂字,抱歉啥都不会触发。。。。。
脚本添加什么都不会触发? IE下有⼀个⽅法增加字节,就会触发 ----onpropertychange
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论