原帖地址:http://www.cnblogs.com/egojit/archive/2013/06/05/3118680.html
合肥程序员群:49313181。 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入)
Q Q:408365330 E-Mail:egojit@qq.com
在做一个自己的项目的时候遇到需要和数据库交互验证用户名是否存在,这种验证一般都是通过Ajax去验证。在此之前我都是用别人写的JQuery插件。但是这次我决定自己写这样一个JQuery插件。JQuery.EgojitForm。
作为js是一种脚本语言在网络中去用,当然是越短小精悍越好。上代码:
/********************
*作者:egojit
*version:0.1
*时间:2013-6-5
***********************************/
//
; (function () {
$.fn.remote = function (options) {
var defaults = {
urls: new Array(),
type: 'POST',
datas: new Array(),
msg: ""
};
var opts = $.extend({}, $.fn.remote.defaults, defaults, options);
this.each(function (index, element) {
var $this = $(this);
$.ajax({
type: opts.type,
url: opts.urls[index],
data: opts.datas[index],
success: function (msg) {
getHtml(element, opts.msg);
}
});
});
};
//组织HTML提示
function getHtml(hobject, msg) {
debugger;
alert(hobject);
$(hobject).after("<span class='Error'>" + msg + "</span>");
}
})(jQuery);
是不是区区几行代码,就实现了一个功能还算可以的远程验证。
首先在最外层有这样的代码:
;(function(){ } )(JQuery);
这个对于js初学者不好理解。但是细细品味也不是那么难以理解。这个被称为函数闭包。;(function(){ } )(JQuery);在本质上就是执行了一个立即执行的js函数。这个和 ;intParse(); 本质上是一样的。函数立即执行了,那么我们写的插件马上被注册到环境中去。另一方面我在闭包函数中定义更多的函数而不搅乱命名空间也不暴露实现。看上面组织HTML的getHtml()函数就是在闭包中定义的一个函数,不会被暴露到外面起到一种保护的作用。
然后我们再分析闭包中的这段代码:
$.fn.remote = function (options) {
var defaults = {
urls: new Array(),
type: 'POST',
datas: new Array(),
msg: ""
};
var opts = $.extend({}, $.fn.remote.defaults, defaults, options);
this.each(function (index, element) {
var $this = $(this);
$.ajax({
type: opts.type,
url: opts.urls[index],
data: opts.datas[index],
success: function (msg) {
getHtml(element, opts.msg);
}
});
});
};
$.fn.remote就是为jquery对象添加了一个对象,我们可以这样去用$("#id").remote(参数对象)。这里的options参数为我们提供了更多的控制。
这行代码比较关键var opts = $.extend({}, $.fn.remote.defaults, defaults, options);这行代码将后面三个参数的对象合并到一个对象中去并且付给了opts。这样我们在后面可以自由的去用这个对象了。
urls我设定是一个数组这样我们可以同时对多个form元素进行远程验证。只要我们传递数组就行了。这样很容易理解的一个JQuery插件就完成了。
下面我开始使用这个插件,首先引用
<link href="scripts/Jquery.EgojitForm/css/JQuery.EgojitForm.css" rel="stylesheet" />
<script src="scripts/Jquery.EgojitForm/JQuery.EgojitForm.js"></script>
然后我为注册按钮事件添加了代码:
<script type="text/javascript">
/*切换验证码*/
function ToggleCode(obj, codeurl) {
$(obj).children("img").eq(0).attr("src", codeurl + "?time=" + Math.random());
return false;
}
$(document).ready(function () {
$("#btnSubmit").click(function () {
debugger;
$("#J_username").remote({ urls: ["/tools/submit_ajax.ashx?action=validate_username"], datas: [$("#J_username").val()], msg: "用户名已经存在!" });
var form = $("#register_form").formSerialize();
$.ajax({
url: "/tools/submit_ajax.ashx?action=user_register",
type: "POST",
data: form,
success: function () {
alert();
}
});
});
});
</script>
$("#J_username").remote({ urls: ["/tools/submit_ajax.ashx?action=validate_username"], datas: [$("#J_username").val()], msg: "用户名已经存在!" });这个就是应用插件。
urls中放的就是一个远程验证代码的一般处理程序的路径。点击按钮后就会以Ajax的方式到远程数据库中去验证,用户用是否存在。这里我只验证了用户名。点击按钮运行结果如图:
写这样一个JQuery是不是很简单???这样我们可以利用JQuery写自己美妙的插件了。
版权:归博客园和Egojit所有,转载请标明出处。
本文链接
分享到:
相关推荐
1. **表单验证插件**:如jQuery Validation Plugin,它可以轻松地为表单添加验证规则,确保用户输入的数据格式正确。 2. **图片轮播插件**:例如Bootstrap Carousel或Slick Slider,它们提供了美观且响应式的图片...
jQuery Validate插件还提供了许多其他功能,如远程验证、分组验证、延迟验证等,可以根据项目需求灵活应用。 总结,jQuery Validate插件是实现高效、灵活的表单验证的强大工具。通过理解和运用上述知识,你可以创建...
在实际开发中,我们通常会使用知名的jQuery Validate插件,这是一个功能强大的、可扩展的验证插件。 压缩包中的"表单验证插件demo"文件很可能是包含HTML、CSS、JavaScript代码的文件夹,其中HTML文件用于展示表单...
jQuery Validate插件支持通过AJAX进行远程验证。这允许我们在服务器端检查输入数据的合法性,而无需立即提交表单。以下是一个示例: ```javascript $("#myForm").validate({ rules: { fieldName: { required: ...
插件名称:jquery表单验证插件 V1.0 插件作者:zy8008 最后更新:2011-4-28 插件说明: datatype类型说明: --------------------------------------- *:必填写,可为任意字符 number:数字 zip:邮政编码 mobile...
本文将深入探讨基于jQuery的zsign插件,一种用于实现仿真实体印章效果的工具,帮助用户在电子文档上实现方便快捷的盖章操作。 jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax...
其中,`/check-email`是一个处理远程验证请求的后端服务端点,它接收客户端发送的数据并返回验证结果。 #### 六、总结 以上四个内置验证方法是jQuery验证框架中最常用的几种验证手段,它们为开发者提供了极大的...
**jQuery表单验证插件Validform详解** 在Web开发中,表单验证是必不可少的一环,它能够确保用户输入的数据符合预设的规则,从而提高数据的准确性和系统的稳定性。Validform是一款基于jQuery的轻量级表单验证插件,...
1. **引入必要的库**:在使用jQuery验证插件之前,需要先引入jQuery库以及验证插件本身。 ```html <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="path/to/jquery.validate....
9. **远程验证**:对于需要服务器端验证的情况,可以使用`remote`规则,如`$("#inputId").rules("add", { remote: "validate-url" })`。 10. **分组验证**:通过`groups`属性,可以将多个字段作为一组进行验证,...
这里提到的几个jQuery插件是jQuery生态系统中的重要组成部分,它们为开发人员提供了丰富的功能,使得Web应用程序更加高效和用户友好。以下是这些插件的详细说明: 1. **jQuery.contextMenu** jQuery.contextMenu...
**jQuery表单验证插件Validation的应用** jQuery Validation插件是一款非常强大的前端表单验证工具,它可以帮助开发者轻松地实现对用户输入数据的有效性检查,确保数据的准确性和完整性。这个插件是基于jQuery库...
3. **jQuery Validate**: 强大的表单验证插件,可自定义验证规则。 4. **HoverIntent**: 高级悬停事件处理,避免鼠标快速移动时的误触发。 5. **Magnific Popup**: 优雅的轻量级弹出层插件,支持图片、视频、IFrame...
jQuery验证插件是一种广泛应用于前端开发中的工具,它极大地简化了网页表单验证的过程,确保用户输入的数据符合预设的规则。在Web应用程序中,数据验证是必不可少的,它可以防止无效或恶意的数据提交到服务器,从而...
**jQuery表单验证插件Validform** 在网页开发中,表单验证是不可或缺的一部分,它确保用户输入的数据符合预设的规则,防止错误数据的提交,提高用户体验并减轻服务器端的处理负担。jQuery是一个轻量级、高性能的...
jQuery社区开发了大量的插件,扩展了jQuery的功能,如表单验证插件validate(), 图片轮播插件carousel(), 弹出框插件modal()等。这些插件大大增强了jQuery的实用性,"JQuery API 查询手册"会详细介绍如何安装、配置和...
jQuery的validation表单验证插件是用于简化网页表单验证的工具,它基于jQuery库,提供了一种高效且可扩展的方式来验证用户输入的数据。这个插件使得开发者能够快速地实现常见输入验证,同时支持自定义验证规则和多...
接着,你需要引入jQuery.validate.js文件,这是验证插件的核心文件。在HTML中,你可以通过以下方式引入这两个脚本: ```html <script src="jquery.js" type="text/javascript"> <script src="jquery.validate.js" ...
在实际开发中,选择合适的jQuery插件可以极大地提升开发效率和用户体验。不过,也需要注意插件的兼容性、性能优化以及版本更新等问题,确保它们能顺利地与其他代码和库协同工作。总之,jQuery插件是现代Web开发不可...
通过上述内容,我们可以看出jQuery表单验证插件不仅提供了丰富的基本校验功能,还支持高度定制化的扩展,如自定义错误信息展示、Ajax远程校验等。这使得它成为前端表单验证的理想选择之一。掌握这些技能能够帮助...