oninput,onpropertychange,onchange的用法和区别

本文介绍了如何使用onpropertychange和oninput事件实现输入框内容变化时的实时筛选功能。通过具体的HTML和JavaScript代码示例,展示了如何针对不同浏览器选择合适的事件以达到预期效果。

如图所示,我想在搜索框实时筛选下面选项内的选项,

开始想到用onchange事件,但是该事件是在搜索框(input)失去焦点时,切当前对象属性发生改变时触发。

我是需要只要内容改变就触发筛选函数,所以onchange对我这个并不实用。

 

因此查阅相关事件:

oninput,onpropertychange,onchange的用法:

  (1)lonchange触发事件必须满足两个条件:

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

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

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

 

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

 

我的需求是只要只改变就马上触发,所以用了onpropertychange和oninput事件

html元素中添加两个事件

<input id="search_input" oninput="searchUserList(this.value);" onpropertychange="searchUserList(this.value);" placeholder="搜索"/>

js中添加筛选函数

/**
 * 当驳回、改派、加签...时
 * 根据搜索框内容,过滤人员列表
 */
var searchUserList = function(value){
    
    var $userList = $('#userList').find('.contact_person').find('span');//获取人员列表
    //$userList.closest('.contact_person').css('display', 'block');
    
    $userList.each(function(index, elem){
        
        $(this).closest('.contact_person').css('display', 'block');
    })
    
    $userList.each(function(index, elem){
        
        if($(this).text().indexOf(value) == -1){//含有该搜索字符串
            $(this).closest('.contact_person').css('display', 'none');
        }
    })
};

 

转载于:https://www.cnblogs.com/daisy-hust/p/4958741.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值