资讯专栏INFORMATION COLUMN

input标签内容改变触发的事件

sanyang / 1471人阅读

摘要:原生方法事件事件在内容改变且失去焦点的时候触发。直接更改值时不触发事件事件在输入内容改变的时候实时触发。与联合使用是的标准事件,对于检测和这几个元素通过用户界面发生的内容变化非常有用,在内容修改后立即被触发,不像事件需要失去焦点才触发。

原生方法 onchange事件
function onc(data){
    console.log(data.value);
}

onchange事件在内容改变且失去焦点的时候触发。即,失去焦点了内容未变不触发,内容变了未失去焦点也不实时触发。
js直接更改value值时不触发

oninput事件
function inp(data) {
    console.log(data.value)
}

oninput事件在输入内容改变的时候实时触发。oninput事件是IE之外的大多数浏览器支持的事件,在value改变时实时触发。
js直接更改value值时不触发。

onpropertychange事件

onpropertychange事件是实时触发,每增加或删除一个字符就会触发,通过js改变也会触发该事件,但是该事件是IE专有。
当input设置为disable=true后,不会触发。

oninput事件与onpropertychange事件的区别:

onpropertychange事件是任何属性改变都会触发,而oninput却只在value改变时触发,oninput要通过addEventListener()来注册,onpropertychange注册方法与一般事件相同。

oninput与onpropertychange联合使用

  oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:password 和 input:search 这几个元素通过用户界面发生的内容变化非常有用,在内容修改后立即被触发,不像 onchange 事件需要失去焦点才触发。oninput 事件在 IE9 以下版本不支持,需要使用 IE 特有的 onpropertychange 事件替代,这个事件在用户界面改变或者使用脚本直接修改内容两种情况下都会触发,有以下几种情况:

修改了 input:checkbox 或者 input:radio 元素的选择中状态, checked 属性发生变化。
修改了 input:text 或者 textarea 元素的值,value 属性发生变化。
修改了 select 元素的选中项,selectedIndex 属性发生变化。
  在监听到 onpropertychange 事件后,可以使用 event 的 propertyName 属性来获取发生变化的属性名称。

  集合 oninput & onpropertychange 监听输入框内容变化的示例代码如下:

// Firefox, Google Chrome, Opera, Safari, Internet Explorer from version 9

function OnInput (event) {
    alert ("The new content: " + event.target.value);
}

// Internet Explorer

function OnPropChanged (event) {
    if (event.propertyName.toLowerCase () == "value") {
        alert ("The new content: " + event.srcElement.value);
    }
}

使用 jQuery

只需要同时绑定 oninput 和 onpropertychange 两个事件就可以了,示例代码如下:

$("textarea").bind("input propertychange", function() {
    $(".msg").html($(this).val().length + " characters");
});

  最后需要注意的是:oninput 和 onpropertychange 这两个事件在 IE9 中都有个小BUG,那就是通过右键菜单菜单中的剪切和删除命令删除内容的时候不会触发,而 IE 其他版本都是正常的。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108702.html

相关文章

  • 前端培训-初级阶段-场景实战(2019-05-30)-input 搜索如何防抖,如何处理中文输入

    摘要:在掘金摸鱼的时候看到了一个题第题搜索如何防抖,如何处理中文输入,感觉挺有意思的。测试地址事件输入法事件输入法的第一个字母时触发。输入法状态输入内容。输入法选择之后触发。 前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我...

    Yuanf 评论0 收藏0
  • 前端培训-初级阶段-场景实战(2019-05-30)-input 搜索如何防抖,如何处理中文输入

    摘要:在掘金摸鱼的时候看到了一个题第题搜索如何防抖,如何处理中文输入,感觉挺有意思的。测试地址事件输入法事件输入法的第一个字母时触发。输入法状态输入内容。输入法选择之后触发。 前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我...

    BDEEFE 评论0 收藏0
  • angularjs学习笔记—事件指令

    摘要:适用标签所有触发条件单击适用标签所有触发条件双击适用标签触发条件失去焦点适用标签触发条件获取焦点适用标签触发条件更新输入框的内容改变并不代表的值更新。如果按一个键很久才松开,发生的事件为。 ngClick 适用标签:所有触发条件:单击 #html click me click me #script angular.module(learnModule, []) ...

    Lemon_95 评论0 收藏0
  • JavaScript 基础知识 - DOM篇(一)

    摘要:前言本篇文章是基础知识的篇,如果前面的基础知识入门篇看完了,现在就可以学习了。基本概念分为三个部分。在这个基础上使用一些新特性,高级浏览器支持,低级浏览器不支持。在对象中的属性是一个布尔值,只有和。 showImg(https://segmentfault.com/img/remote/1460000012581493?w=1920&h=1080); DOM 前言 本篇文章是JavaS...

    cuieney 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<