oninput事件

oninput事件js监听input等表单输入框的变化事件oninput,手机页面开发中使用到文本框textarea输入字符监听文本框变化计算还可以输入多少字符,如果使用onkeyup的话是无法监听到输入法输入的文本变化的,复制粘贴也不能监听到,于是就用到了oninput事件来监听文本框value值的改变。由于是手机端页面没有考虑IE这货。js代码如下://计算文本输入统计(function

大家好,又见面了,我是你们的朋友全栈君。

js监听input等表单输入框的变化事件oninput,手机页面开发中使用到文本框textarea输入字符监听文本框变化计算还可以输入多少字符,如果使用onkeyup的话是无法监听到输入法输入的文本变化的,复制粘贴也不能监听到,于是就用到了oninput事件来监听文本框value值的改变。由于是手机端页面没有考虑IE 这货。

js代码如下:

//计算文本输入统计
(function textCoun(textarea,num){

    var sendTextarea     =     document.getElementById(textarea),
        text            =    sendTextarea.value,
        counter            =    text.length,
        sendCount         =     document.getElementById(“send-count”);
    
    sendCount.innerHTML = num-counter;    //显示初始状态还属于多少字
    
    //输入以后重新计算
    sendTextarea.oninput = function(){

        text    =    sendTextarea.value,
        counter    =    text.length;
        sendCount.innerHTML = num-counter;
    }

})(“send-textarea”,110)

关于这个事件的更多知识,可以阅读下面的文字,我们感谢写下下面文字的兄弟。懒人建站整理。

oninput,onpropertychange,onchange的用法

onchange触发事件必须满足两个条件:




a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)




b)当前对象失去焦点(onblur); 




onpropertychange的话,只要当前对象属性发生改变,都会触发事件,但是它是IE专属的;       




oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。




停止冒泡事件




if (e) //停止事件冒泡 e.stopPropagation(); 




else  window.event.cancelBubble = true;




执行上面的代码,单击输入框发现也会触发onpropertychange,输入一个值同样也会触发这个事件,这就证明了,只要有属性的值被修改就会触发该事件。




第二、既然我们发现了这个特点,那就会有一个问题了:当我们有时在输入框值发生改变时希望执行一个函数操作,但同时也要修改一个自定义的属性,这样onpropertychange就会被触发两次,这个可能并不是我们所希望的。


猜想一下,既然提供了这么一个属性,那一定应该能获取到是哪个属性被改变了。试着获取参数个数及参数内容。

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

执行一下,发现有很多个属性,但仔细看我们可能会发现这么一个属性:propertyname,相信每个人都能猜到这个属性的意思了。对,这个就是用来获取哪个属性被修改的。

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

再回到我们开始的问题js监听input等表单输入框的变化事件oninput,我们只需要判断是否是value被改变就ok了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132000.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 语义分割代码一步步实现_语义分割应用

    语义分割代码一步步实现_语义分割应用语义分割的整体实现代码大致思路很简单,但是具体到细节,就有很多可说的东西。之前写过一篇文章,可能有些地方现在又有了新的思路或者感受,或者说之前没有突出重点。作为一个小白,这里把自己知道的知识写一下,事无巨细,希望看到的人能有所收获。一、文件思路总的来说,语义分割代码可以分为如下几个部分:data:图像数据 data/train:训练集数据 data/train/img:…

    2022年8月21日
    9
  • full connection layer(inconnected)

    我的机器学习教程「美团」算法工程师带你入门机器学习已经开始更新了,欢迎大家订阅~任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~定义…

    2022年4月16日
    47
  • 【矩阵乘】【NOI 2012】【cogs963】随机数生成器

    【矩阵乘】【NOI 2012】【cogs963】随机数生成器

    2022年1月22日
    57
  • python生成可执行文件linux_python运行exe程序

    python生成可执行文件linux_python运行exe程序Python生成可执行文件exe一、安装pyinstallerpipinstallpyinstaller二、使用pyinstaller命令使用示例相对路径在程序目录中,运行命令pyinstallermyscript.py则可以在当前目录生成两个文件夹dist和build,exe文件在dist文件夹中。绝对路径在程序目录中,运行命令pyinstallerC:\mys…

    2022年5月3日
    157
  • 那年那兔那些事观后感600字_那年那兔那些事儿金句

    那年那兔那些事观后感600字_那年那兔那些事儿金句我们生活在现在,吃得饱穿的暖。但是总觉得自己很不幸福。需要那么努力的去奋斗。抱怨社会的不公平。然而世界上什么时候公平过。我们都快忘了从八国联军侵华的时候开始什么时候公平过。从有了人便有了三六九等谈什

    2022年8月3日
    22
  • JavaScript获取路径

    JavaScript获取路径

    2022年1月1日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号