欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

即时搜索的input和propertychange方法

程序员文章站 2022-07-05 09:56:58
...

做搜索功能的时候,经常遇到输入框检查的需求,最常见的是即时搜索,今天好好小结一下。

即时搜索的方案:

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

 

a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)
b)当前对象失去焦点(onblur)
 (2)keypress  恩,还好。。。。。就是能监听键盘事件,鼠标复制黏贴操作他就无能为力的赶脚了。。。。。
 (3)propertychange(ie)和input事件
input是标准的浏览器事件,一般应用于input元素,当input的value发生变化就会发生,无论是键盘输入还是鼠标黏贴的改变都能及时监听到变化

 

propertychange,只要当前对象属性发生改变。

比如一个input输入文字后出现下拉框,如图:

即时搜索的input和propertychange方法
            
    
    博客分类: jquery  

当输入框里面内容为空时,下拉框要隐藏,可以通过input和propertychange方法实现,代码如下:

 

[javascript] view plain copy
  1. <script>  
  2. $("#search").bind("input propertychange",function(){  
  3.     var value=$(this).val();  
  4.     if(value){  
  5.         $(".pc_search ul").show();  
  6.     }else{  
  7.         $(".pc_search ul").hide();  
  8.     }  
  9. });  
  10. </script>  

这里bind同时绑定了input和propertychange两个方法。

 

======================================================

注意:

从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于统一取代以前的bind()、 delegate()、 live()等事件函数。

 

// jQuery 1.0+ (1.4.3+支持参数data)
$("selector").click([ data ,] handler );

// jQuery 1.0+ (1.4.3+支持参数data)
$("selector").bind("click"[, data ], handler );

// jQuery 1.3+ (1.4+支持参数data)
$("selector").live("click"[, data ], handler );

// jQuery 1.4.2+
$("ancestor").delegate("selector","click"[, data ], handler );

// jQuery 1.7+
$("ancestor").on("click","selector"[, data ], handler );

 

项目使用:

$("#buildYear").on('input propertychange',function () {
        var value=$(this).val();
if(value>=1900&&value<=2017){
            $("a.ssq-error.buildYear").css({"padding-left":"0px"});
$("a.ssq-error.buildYear").html("");
$("#evaluate").removeAttr("disabled");
}else{
            $("a.ssq-error.buildYear").css({"padding-left":"12px"});
$("a.ssq-error.buildYear").html("年代取值范围:1900-2017");
}
});