html5标准事件oninput实现输入检测

以往我们实现input的输入监听用到的无非是onkeyup、onkeydown、onchange,但是这些都有着一些不好的用户体验。比如onchange事件只在键盘或者鼠标操作改变对象属性,且失去焦点时触发,脚本触发无效;而onkeydown、onkeyup在处理复制、粘贴、拖拽、长按键(按住键盘不放)等细节上并不完善。

onpropertychange属性可在某些情况下解决上面存在的问题,不用考虑是否失去焦点,不管js操作还是键盘鼠标手动操作,只要HTML元素属性发生改变即可立即捕获到。遗憾的是,onpropertychange为IE专属的。其他浏览器下如果想要实现这一实时监听的需求,就要用到HTML5中的标准事件oninput,不过IE9以下的浏览器是不支持oninput事件的。如果要兼容IE9以下浏览器,就需要oninput和onpropertychange一起使用。

如下实例:

!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="Author" content="神棍、Falost">
        <title>hello world!</title>
        <style type="text/css">
            #box{
                width:100%;
                height:30px;
            }
        </style>
    </head>
    <body>
        <div id="box"></div>
        <input type="text" oninput="Monitor(this)" onpropertychange="Monitor(this)"/>
        
        <script type="text/javascript">
            function Monitor(t){
                console.log(t.value)
                var box = document.getElementById(‘box‘)
                box.innerHTML = ‘你当前输入的是:‘+ t.value
            }
        </script>
    </body>
</html>

实时监听input中输入内容的变化。

时间: 2024-08-11 03:32:51

html5标准事件oninput实现输入检测的相关文章

js监听input等表单输入框的变化事件oninput

js监听input等表单输入框的变化事件oninput,手机页面开发中使用到文本框textarea输入字符监听文本框变化计算还可以输入多少字符,如果使用onkeyup的话是无法监听到输入法输入的文本变化的,复制粘贴也不能监听到,于是就用到了oninput事件来监听文本框value值的改变.由于是手机端页面没有考虑IE 这货.过去一般都使用onchange/onkeyup/onkeypress/onkeydown实现,但是这存在着一些不好的用户体验.比如onchange事件只在键盘或者鼠标操作改变

Chromium网页输入事件捕捉和手势检测过程分析

连续的输入事件可能会产生一定的手势操作,例如滑动手势和捏合手势.在Chromium中,网页的输入事件是在Browser进程中捕捉的.Browser进程捕获输入事件之后,会进行手势操作检测.检测出来的手势操作将会发送给Render进程处理,因为它们需要应用在网页之上.与此同时,Browser进程也会将原始的输入事件发送给Render进程处理.本文接下来就分析Browser进程处理网页输入事件的过程. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 接下来我们

常用的HTML5、CSS3新特性能力检测写法

伴随着今年10月底HTML5标准版的发布,未来使用H5的场景会越来越多,这是令web开发者欢欣鼓舞的事情.然而有一个现实我们不得不看清,那就是IE系列浏览器还占有一大部分市场份额,以IE8.9为主,windows8.1的用户已经用上了IE10/11,而考虑我国的国情,IE6.7依然存留不少.在我们放手用HTML5开发的时候,新特性支持度检测就是必不可少的了.一种方式是用navigator.userAgent或navigator.appName来检测浏览器类型和版本,不过这种方式不是很可靠,浏览器

兼容Firefox和IE的onpropertychange事件oninput

原文 兼容Firefox和IE的onpropertychange事件oninput onpropertychange能够捕获每次输入值的变化.例如:对象的value值被改变时,onpropertychange能够捕获每次改变,而onchange需要执行某个事件才可以捕获. 在文本框输入数据的时候,当键盘按下并放开的时候可以使用onkeyup来检测事件,onpropertychange能够捕获每次改变,而onchange需要执行某个事件才可以捕获.可是有的时候我们输入数据是采用粘贴的方式而不是键盘

暴风魔镜安卓手柄输入检测接口

使用暴风魔镜做安卓VR开发,自己尝试弄了一天,发现效果太差,主要是手柄输入函数检测不到,或者检测的不灵敏.第二天才想起来百度,然后才发现暴风魔镜官方已经提供了手柄SDK.链接地址http://bbs.open.mojing.cn/forum.php?mod=viewthread&tid=48&extra=page%3D1. 好,以上就是原生的SDK,关于相机我就不说了,最要紧是把手柄函数给找到.开发文档大概介绍了一下,在BaoFengZeemoteManager.cs中提供了按键的获取事件

HTML5 移动开发(移动设备检测及对HTML5的支持)

1.如何选择要使用的特性以及所面向的浏览器 2.哪些浏览器支持HTML5 3.如何检测是否支持HTML5 4.如何开发贷容错性的Web应用程序 5.CSS3媒体查询如何增强检测脚本 使用HTML5这类前沿预言时,可能会选择以下两种方案 一. 尽可能地靠拢新标准,忽略那些不支持的平台 二.不使用任何新技术,知道改标准被浏览器系统广泛支持. 现在我们要使用的是第三种方法:就是对新技术理智的取舍,并慎重处理兼容性问题,这样就能开发出对大多数用户都可靠且实用的Web应用程序. 有4种检测HTML5功能的

HTML 参考手册- (HTML5 标准)

HTML 参考手册- (HTML5 标准) 功能排序 New : HTML5 新标签 标签 描述 基础   <!DOCTYPE>  定义文档类型. <html> 定义一个 HTML 文档 <title> 为文档定义一个标题 <body> 定义文档的主体 <h1> to <h6> 定义 HTML 标题 <p> 定义一个段落 <br> 定义简单的折行. <hr> 定义水平线. <!--...--&

利用Keydown事件阻止用户输入

先了解下各事件的区别 KeyDown:在控件有焦点的情况下按下键时发生 KeyPress:在控件有焦点的情况下按下键时发生 KeyUp:    在控件有焦点的情况下释放键时发生 1.KeyPress主要用来接收字母.数字等ANSI字符.KeyDown 和 KeyUP 事件过程通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键 2.KeyPress 只能捕获单个字符,KeyDown 和KeyUp 可以捕获组合键. 3.KeyPress 不显示键盘的物理状态(SHIFT键),而只是

移动端开发注册、登陆input常用事件(input输入文字触发事件)

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>移动端开发注册.登陆input常用事件(input输入文字触发事件)</title> <meta name="keywords" content="