龙空技术网

javascript的onchange、oninput、onkeyup你能区别吗?

星前线 514

前言:

当前同学们对“js的on”大体比较关怀,咱们都想要剖析一些“js的on”的相关资讯。那么小编也在网络上搜集了一些对于“js的on””的相关内容,希望兄弟们能喜欢,我们快快来了解一下吧!

前言

表单验证输入是我们经常做的一项工作,比如价格的输入,就只能输入小数而且保留最多两位小数,但是翻看input事件属性,onchange、oninput、onkeyup似乎都可以完成,真的是这样吗?其实那只是你还是没有吃透这几个事件的使用而已,下面我们就来具体看看它们有什么不同。

onchange

定义和用法:事件会在域的内容改变时发生。

支持该事件的 HTML 标签:<input type="text">, <select>,<textarea>

所有主流浏览器都支持 onchange 属性。

oninput

定义和用法:事件在用户输入时触发。

支持该事件的 HTML 标签: <input>,<textarea>

浏览器支持 :

onkeyup

定义和用法:事件会在键盘按键被松开时发生。

支持该事件的 HTML 标签:

很多

所有主流浏览器都支持 onkeyup 属性。

区别

从以上对比可以看出很多不同,在这里我还是重点说下它们触发的时机是不一样的:

oninput 事件在元素值发生变化时立即触发(页面显示的是回调函数处理过后的内容)

onchange 在元素失去焦点时立即触发(首先显示的是未处理的内容,失去焦点的情况在才去进行回调函数的执行,改变输入的内容)

onkeyup是按键松开时触发(首先显示的是未处理的内容,一直按住不放一直进行输入,只有按键松开时才会触发事件)

所以说,比如我们进行价格输入验证,就只能用oninput,对于ie9一下可以使用onpropertychange(有兴趣的同学可以去查下它),完了希望童鞋们多去试试,熟练掌握。

标签: #js的on