`

基于jQuery的监控表单元素变化的小插件

 
阅读更多
http://www.easyui.info/archives/758.html

对于监控输入框或者下拉框这些表单元素,大家都有很有方法。keyup,keydown,change这些事件去监控都是一种思路,不过基本在都存在缺点。本文采用监控focus和blur事件的方式来实现:focus后开始监控,blur后停止监控,兼容性很好,不多说了,直接上代码了:

实现代码:
$.fn.focuschange = function(callback) {   
    return this.each(function() {   
        var state = $.data(this, "focusblurlistener", {   
            validating: true,   
            value: undefined   
        });   
        var box = $(this);   
        box.unbind(".focusblurlistener").bind("focus.focusblurlistener", function(event) {   
            state.validating = true;   
            state.value = state.value || "";   
            (function() {   
                if(state.validating) {   
                    if(state.value != box.val()) {   
                        callback.call(this, event, state.value, box.val());   
                        state.value = box.val();   
                    }   
                    setTimeout(arguments.callee, 200);   
                }else{   
                    return;   
                }   
            })();   
        }).bind("blur.focusblurlistener", function() {   
            state.validating = false;   
        });   
    });   
}; 

使用方式:
$(function(){   
    $(selector).focuschange(function(e,oldValue,newValue){   
        alert('旧值:' + oldValue + ";新值:" + newValue);   
    });   
});  

大家也看到源码的实现方式了,focus的时候出发一个不断自我递归的函数监控元素value变化;blur的时候停止监控。
分享到:
评论

相关推荐

    jquery-form - jQuery表单生成插件

    jQuery-form 是一个强大的jQuery插件,专门用于处理HTML表单的提交、上传和Ajax交互,大大简化了前端开发者与服务器端进行数据交换的过程。这个插件使得动态表单的创建和管理变得更加简单,同时提供了丰富的功能,如...

    jquery全选反选插件

    `jquery-1.9.0.min.js`是jQuery库的压缩版本,它提供了一系列方便的函数,如`$()`用于选择DOM元素,`.click()`用于绑定点击事件,`.prop()`用于设置或获取DOM元素的属性,如checked状态。 `jquery.getSelect.js`是...

    240多个jQuery插件.doc

    jQuery不仅本身提供了丰富的API和强大的功能,还拥有大量的第三方插件,这些插件极大地扩展了jQuery的功能范围,使得开发者可以轻松地添加复杂的功能到自己的项目中,如动画、表单验证、文件上传等。下面将详细介绍...

    基于jquery的监控数据是否发生改变

    在实际的Web开发过程中,监控页面数据是否发生改变是一个常见...以上就是基于jquery实现监控数据是否发生变化的知识点总结。希望开发者在实际应用中能够根据具体情况灵活运用,并进行适当的优化以适应不同的开发环境。

    plupload上传插件 基于jquery 有demo

    Plupload是一款强大的、基于JavaScript的多浏览器文件上传插件,它支持多种浏览器和多种上传方式,包括传统的HTTP表单上传、Flash、Silverlight以及HTML5技术。由于它基于jQuery库,因此可以方便地与现有的jQuery...

    JQUERY表单暂存功能插件分享

    该插件通过监控表单域的变化,即当用户在表单中填写或修改数据时,该插件可以捕获到这些变化。随后,它会利用HTML5中提供的Web Storage技术之一的localStorage来存储这些发生变化的数据。当页面被重新加载时,插件会...

    jQuery插件教程(搜罗了全部插件).docx

    jQuery插件是jQuery生态系统的重要组成部分,它们扩展了jQuery的核心功能,提供了各种各样的用途,包括文件上传、表单验证、下拉框操作、表单元素美化、时间和日期选择等。以下是一些常见的jQuery插件及其应用场景:...

    jquery_form_js 表单提交自定义源码

    通过监控input[type=file]元素的变化,可以在用户选择文件后立即读取并预处理文件数据。 5. 回调函数处理 在提交过程中,插件会按照用户配置的beforeSubmit、success、error等回调函数顺序执行。这些函数允许...

    jquery 插件之 floattextbox 修改版

    这个插件尤其适用于需要用户大量输入文字的场景,如评论、文章编辑或表单填写等。 首先,我们来详细了解一下浮层文本框的概念。浮层文本框通常是指一个可扩展的输入区域,当用户点击常规大小的textarea时,会自动...

    240多个jQuery插件

    1. jQuery Validation:标准的表单验证插件。 2. Auto Help:自动显示帮助信息。 3. Simple jQuery form validation:简洁的验证方案。 4. jQuery XAV - form validations:扩展验证功能。 5. Masked Input:设置...

    jquery通信

    jQuery提供了便捷的方法来操作和监控表单元素,如`$("#formId").submit()`用于监听表单提交事件,`$("#inputId").val()`用于获取或设置输入框的值。 **一、基本表单操作** 1. **选择表单元素:** 使用jQuery的选择...

    优秀的Jquery插件集合

    此外,它还支持多种事件绑定,便于开发者监控表单提交的不同阶段,实现更精细的控制。 #### jQuery uploadify:文件上传的革命 jQuery uploadify是一个功能强大的文件上传控件,支持Ajax提交、多文件上传、上传...

    海量经典的jQuery插件集合

    以上介绍的jQuery插件涵盖了文件上传、表单验证、选取框、输入框、时间日期颜色选取、投票、搜索以及编辑器等多个方面。这些插件不仅能够帮助开发者快速实现所需功能,还能显著提升用户的使用体验。在实际开发过程中...

    jquery插件表

    - **Ping Plugin**:监控表单提交状态。 - **Toggle Form Text** 和 **ToggleVal**:切换表单字段的可见性和值。 - **jQuery Field Plugin** 和 **jQuery Form’n Field plugin**:提供对表单字段的高级控制。 - **...

    softkey是一款轻量级跨浏览器的jQuery虚拟键盘插件

    4. **jQuery集成**:作为一款基于jQuery的插件,Softkey利用了jQuery的强大功能和广泛支持,使得绑定事件、操作DOM等操作变得简单易行。只需几行代码,开发者就能轻松启用虚拟键盘,并与页面上的元素进行交互。 5. ...

    基于jQuery的SQL注入攻击防范实现.pdf

    7. 入侵检测系统(IDS):虽然文档没有深入讨论IDS,但提到的关键词暗示了使用jQuery插件可以与IDS集成,以提高监控和检测SQL注入攻击的能力。 8. 数据处理:文中隐含了数据处理的重要性,客户端验证是数据处理的一...

    jquery-confirm.js和jquery-form.js

    首先,`jquery-form.js`监控表单的提交事件,并在用户尝试提交时阻止默认的表单行为。接着,通过`jquery-confirm.js`弹出一个提示框,确认用户是否真的要执行提交操作。如果用户确认,`jquery-form.js`会异步地将...

    jQuery 文本框字符限制插件 Textarea

    本文将重点介绍标题为“jQuery 文本框字符限制插件 Textarea”的相关知识点,该插件主要用于限制用户在textarea文本框中输入的字符数。 在网页设计中,有时我们需要对用户的输入进行控制,例如限制评论长度、留言...

Global site tag (gtag.js) - Google Analytics