首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Javascript函数没有运行oninput()或onchange()

基础概念

oninput()onchange() 是 JavaScript 中用于处理输入框(如 <input><textarea>)事件的两种方法。

  • oninput(): 当输入框内容发生变化时触发,即用户输入时会立即触发。
  • onchange(): 当输入框失去焦点且内容发生变化时触发,即用户输入完成后离开输入框时触发。

相关优势

  • oninput(): 实时响应用户的输入,适用于需要实时验证或处理的场景。
  • onchange(): 适用于需要在用户完成输入后进行处理的场景,如表单提交前的最终验证。

类型

这两种事件处理函数都是 JavaScript 中的事件监听器,属于 DOM 事件的一部分。

应用场景

  • oninput(): 用于实时搜索、实时数据验证、实时显示输入结果等。
  • onchange(): 用于表单提交前的最终验证、数据同步等。

可能遇到的问题及解决方法

问题1: 函数没有运行

原因:

  1. 事件绑定错误: 可能是事件绑定语法错误,或者绑定的元素选择器错误。
  2. 函数定义错误: 可能是函数定义错误,或者函数名拼写错误。
  3. 浏览器兼容性问题: 某些旧版浏览器可能不支持这些事件。

解决方法:

  1. 检查事件绑定:
  2. 检查事件绑定:
  3. 检查函数定义:
  4. 检查函数定义:
  5. 浏览器兼容性: 确保使用现代浏览器,或者使用 polyfill 来支持旧版浏览器。

问题2: 函数运行但无预期效果

原因:

  1. 逻辑错误: 函数内部的逻辑可能有误,导致没有达到预期效果。
  2. DOM 更新问题: 可能是 DOM 元素没有正确更新,导致函数执行后看不到效果。

解决方法:

  1. 调试函数逻辑:
  2. 调试函数逻辑:
  3. 确保 DOM 更新:
  4. 确保 DOM 更新:

参考链接

通过以上方法,可以有效地解决 oninput()onchange() 事件处理函数不运行的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【整合】input标签JS改变Value事件处理方法

    某人需要在时间控件给文本框赋值时,触发事件函数。实现的效果:   1、文本框支持手工输入,通过用户输入修改值,手工输入结束后触发事件。...、oninput、onpropertychange对比 onchange:老东西,基本兼容所有浏览器。...适用场景为:输入内容失去焦点后,才触发事件的场景       注:在查资料的过程中看到有的地方说onchange在非IE8以下的浏览器中会实时监听文本变化,但是我在实际测试中发现并没有实时监听,此处有问题货错误还请指教...文本框输入过程中实时监听输入内容,触发事件 onpropertychange:IE中元素特有的属性,直接在底层监听元素的属性变化(不止是Value),任何变化都会触发事件,包括适用JS操作       适用场景为:页面运行期间实时监听元素属性变化...开发中使用onpropertychange,oninput事件解决onchange事件的不足 http://www.jb51.net/article/25275.htm 总结oninputonchange

    12.2K50

    前端实现input输入值实时变化

    一、oninputonchange事件oninputonchange是两个常用的事件对象,它们都可以用来监听输入框值的变化。然而,它们之间存在一些关键的区别。...这种即时性使得oninput事件非常适合用于需要即时反馈的场景。onchange事件:与oninput不同,onchange事件在输入框的值改变后且失去焦点时才触发。...此外,onchange事件还可以用于非输入框元素,如元素。这种特性使得onchange事件更适合用于在用户完成输入后进行验证提交的场景。...三、output元素是HTML5中的一个新标签,用于表示计算结果脚本的输出。然而,元素本身并不提供输入值变化监听的功能。...它通常与其他元素(如)和JavaScript代码一起使用,以实现复杂的表单处理和计算功能。

    1.6K10

    有关onpropertychange事件

    border:1px solid #fc0;height:24px;width:300px;" id="target"> <input name="filltext" oninput...如果想兼容其它浏览器,有个类似的事件,oninput! 可能大家会想到另外一个事件:onchange。 但是,onchange有两个弊端,一、就是它在触发对象失去焦点时,才触发onchange事件。...二、如果得用javascript改变触发对象的属性时,并不能触发onchange事件,oninput也有这个问题。 onpropertychange会在设置disable=true的时候失效。...而oninput只是在改变input的value值时才触发。 oninput 事件:不但JS 改变 value 值时不能触发,有从浏览器的自动下拉提示中选值时,也不会触发。...onpropertychange触发函数只有一个默认参数,是所以可以触发属性的集合 document.getElementById

    33810

    onpropertychange替代方案

    如果想兼容其它浏览器,有个类似的事件,oninput! 可能大家会想到另外一个事件:onchange。 但是,onchange有两个弊端。...一、就是它在触发对象失去焦点时,才触发onchange事件。 二、如果得用javascript改变触发对象的属性时,并不能触发onchange事件,oninput也有这个问题。...而oninput只是在改变input的value值时才触发。 oninput 事件:不但JS 改变 value 值时不能触发,有从浏览器的自动下拉提示中选值时,也不会触发。...onpropertychange触发函数只有一个默认参数,是所以可以触发属性的集合 2.onclick,onchange替代onpropertychange,但是都有一定的弊端 3.当遇到 input...IE 8好像是不行的, input不要用这个onchange ,其他的普通input场景一般用onblur 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126892

    1.3K20

    onpropertychange事件「建议收藏」

    onchange:1.它在触发对象失去焦点时,才触发onchange事件 2.如果得用javascript改变触发对象的属性时,并不能触发onchange事件...oninput 事件:不但JS 改变 value 值时不能触发,有从浏览器的自动下拉提示中选值时,也不会触发。...将oninput写在JS代码中分离出来时与普通事件注册的方法有些不同,必须使用addEventListener来注册。...oninput 事件在: IE9 以下版本不支持,需要使用 IE 特有的 onpropertychange 事件替代 oninput 和 onpropertychange 这两个事件在 IE9 中都有个小...BUG,那就是通过右键菜单菜单中的剪切和删除命令删除内容的时候不会触发,而 IE 其他版本都是正常的,目前还没有很好的解决方案。

    60430

    oninput onpropertychange「建议收藏」

    oninput 是 HTML5的标准事件,对于检测 textarea, input:text, input:password 和 input:search oninput 事件在 IE9 以下版本不支持...onchange触发事件必须满足两个条件: a)当前对象属性改变,并且是由键盘鼠标事件激发的(脚本触发无效) b)当前对象失去焦点(onblur); 也就是说并不是我们在打字的时候就会触发...,而是在打完这后,焦点移出去之后,才触发;只有人工触发才有效,如果利用 JavaScript 程序改变是没有效果的。...onchange触发事件必须满足两个条件: a)当前对象属性改变,并且是由键盘鼠标事件激发的(脚本触发无效) b)当前对象失去焦点(onblur); 也就是说并不是我们在打字的时候就会触发...,而是在打完这后,焦点移出去之后,才触发;只有人工触发才有效,如果利用 JavaScript 程序改变是没有效果的。

    52340

    input元素的oninput事件和onchange事件

    input元素的oninput事件和onchange事件 框架用多了,感觉原生的有点弱化了,不说了,是时候巩固一波了 ^ _ ^ 1、input元素上绑定事件的三种方式: 第一种:直接在元素标签上添加oninput...属性,属性值为处理事件函数的调用 function handleInput(...) { // 处理事件代码 } 第二种:获取input元素,然后在元素对象上添加oninput属性,属性值为函数函数内部为处理事件函数的调用 var inputEle = document.querySelector('#input') inputEle.oninput = function() {...事件和onchange事件的区别 oninput事件是在输入框中输入时就会触发 onchange事件是在输入框输入完内容后,输入框失焦后触发 onchange事件兼容性好,主流浏览器都支持 oninput

    3.4K10

    从 0 到 1 实现 react - 9.onChange 事件以及受控组件

    Drastically simplify the event system Migrate from onChange to onInput and don’t polyfill it for uncontrolled...比如它目前 onChange 事件其实对应着原生事件中的 input 事件。在这个 issue 中明确了未来会使用 onInput 事件替代 onChange 事件,并且会大幅度地简化合成事件。...有了以上信息后,我们对 onChange 事件(将来的 onInput 事件)的代码作如下更改: function setAttribute(dom, attr, value) { ......受控组件的实现 题目可以换个问法:当 input 的传入属性为 value 时(且没有 onChange 属性),如何禁用用户的输入事件的同时又能获取焦点?...={this.change} /> ) } } 这段代码中的 change 函数即上个段落所谓的 changeCb 函数,通过 setState 的事件循环机制改变表单的值

    1.8K10

    手机端收入实时监听oninput & onpropertychang

    ,在内容修改后立即被触发,不像 onchange 事件需要失去焦点才触发。...bind('input propertychange', function() {    $('.msg').html($(this).val().length + ' characters');});onchange...事件与onpropertychange事件的区别:onchange事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发;onpropertychange事件却是实时触发,即每增加删除一个字符就会触发...oninput事件与onpropertychange事件的区别:oninput事件是IE之外的大多数浏览器支持的事件,在value改变时触发,实时的,即每增加删除一个字符就会触发,然而通过js改变value...(此处都是指在js中动态绑定事件,以实现内容与行为分离)oninput与onpropertychange失效的情况:(1)oninput事件:a). 当脚本中改变value时,不会触发;b).

    87110

    Vue JSX、自定义 v-model

    ==JSX = Javascript + XML==,即在 Javascript 里面写 XML,即具备 Javascript 的灵活性,又有 html 的语义化和直观性 应用场景 有人说,Vue 的模板语法简单易上手...使用过 React 的同学,应该不会对函数式组件感到陌生 函数式组件,我们可以理解为==没有内部状态==,==没有生命周期钩子函数==,==没有 this==(不需要实例化的组件) 在日常开发中,经常会开发一些纯展示性的业务组件...== 函数式组件不需要实例化,所以没有 this,==this==通过==render==函数的第二个参数来代替 函数式组件没有生命周期钩子函数,不能使用计算属性、watch 等等 函数式组件不能通过...> 插播一个以前写过的==VNode==传送门:virtual DOM 关于 createElement 方法,有三个参数: 第一个参数主要用于提供 dom 的 html 内容,类型可以是字符串、对象函数...生态系统中的一个通用惯例,实际上也是 JSX 所要求的 从 Vue 的 Babel 插件的 3.4.0 版本开始,我们会在以 ES2015 语法声明的含有 JSX 的任何方法和 getter 中 (不是函数箭头函数

    4.7K10

    input标签内发生变化进行监听

    onchange事件与onpropertychange事件的区别:   onchange事件在内容改变(两次内容有可能相等)且失去焦点时触发;onpropertychange事件是实时触发,每增加删除一个字符就会触发...oninput事件与onpropertychange事件的区别:   oninput事件是IE之外的大多数浏览器支持的事件,在value改变时实时触发,但是通过js改变value时不会触发;onpropertychange...事件是任何属性改变都会触发,而oninput却只在value改变时触发,oninput要通过addEventListener()来注册,onpropertychange注册方法与一般事件相同。...oninput与onpropertychange失效的情况: oninput事件:   (1)当脚本中改变value时,不会触发;   (2)从浏览器的自动下拉提示中选取时,不会触发; onpropertychange

    56620
    领券