用jquery validate封装自己的验证库

2019-03-03 10:15|来源: 领悟书生

如果一个项目中多个地方要验证,例如登录、注册等,每个页面都写验证代码,相当的痛苦,那这节就是用jquery validate封装自己的验证库,然后直接引入使用就可以了


下面是一个验证库示例:

jquery.cms_validate.js

(function($){
    /**
     * 继承jquery插件的方法,一定熟悉
     */
    var __validate = $.fn.validate;
    $.fn.cms_validate = function(opts) {
        /**
     * 希望在这里来定义规则
     */
    var __rules = $.extend({
        username:"required",
        password:"required",
        age:"digits",
        ach:"number",
        email:"email",
        url:"url"
    },opts?(opts.rules||{}):{});
    var __messages = $.extend({
        username:"用户名不能为空",
        password:"用户密码不能为空",
        age:"年龄必须是整数",
        ach:"成绩必须为数字",
        email:"邮件的格式不正确",
        url:"链接地址不正确"
    },opts?(opts.messages||{}):{});
         
    var __opts = $.extend((opts||{}),{
        rules:__rules,
        messages:__messages
    });
    //完成了prototype的继承
    $.extend($.fn.validate.prototype,__opts||{});
        __validate.call(this,__opts);
    };
})(jQuery);


验证库的使用

直接使用

<script type="text/javascript" src="js/jquery-1.9.0.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript" src="js/jquery.cms_validate.js"></script>
<script type="text/javascript">
$(function(){
    $("#addForm").cms_validate();
})
</script>

扩展使用

<script type="text/javascript" src="js/jquery-1.9.0.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript" src="js/jquery.cms_validate.js"></script>
<script type="text/javascript">
$(function(){
    $("#addForm").cms_validate({
    rules:{
            username:{
            minlength:3,
            required:true
        }
    },
    messages:{
        username:{
        required:"用户名不能为空",
        minlength:"用户名必须大于3"
        }   
    }
    });
})
</script>


本文链接:用jquery validate封装自己的验证库,由领悟书生原创

转载请注明出处【http://www.656463.com/article/362】

相关问答

更多
  • 封装你指的是的$.fn.extend?土一点的就是在这个函数里面自己实现验证的逻辑 好一点就是在里面包装validate再好一点的就应该是去找这么一个插件,应该有现成的
  • 我是个白痴。 我在我的实际代码中犯了一些错字,并且弄乱了我在很多验证器方法中看到的this.optional(element)。 这是工作功能: $.validator.addMethod('lessThanEqual', function(value, element, param) { if (this.optional(element)) return true; var i = parseInt(value); var j = parseInt($(param).val()) ...
  • 当你设置对象属性的值时,你应该放在值之后而不是; 。 所以required: true;改变required: true; (三个地方), email: true; required: true, email: true, 然后你的代码就会起作用,就像这里: 小提琴 When you set values for object properties you should place , after values instead of ;. So change required: true; (three p ...
  • 这可以通过一个简单的两步过程完成: 声明你自己的验证方法 。 在该方法中,您将比较两个输入元素。 在两个输入元素之一中引用验证方法。 This can be done in a simple two-step process: Declare your own validation method. In that method you would compare the two input elements. Reference the validation method in one of the two ...
  • 你的代码: if($('#cartForm').length > 0) { $('#proceedCheckout').on('click', function (event) { console.log('HSA'); $('#changeCountry').validate({ // <-- move out of here errorClass: 'alert-error' }); event.preven ...
  • 您必须编写一个自定义函数来验证任何一个输入被选中并将其作为回调 http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-callback you have to write a custom function to validate any one of the input is selected and put that as a call back http://docs.jquery.com/Plugins/Valid ...
  • 当数字超过浮点数的上限时显示无穷大,即1.7976931348623157E + 10308。 像这样重写你的规则 rules: { "numberOfUsers": { "required": true, "number":true, "range":[-1,1.7976931348623157E+10308] } 或者只 ...
  • 如果要将Microsoft不显眼验证脚本与您在同一页面中编写的自定义jquery验证规则混合,则需要将jquery验证规则添加到现有表单元素。 我们来举个例子: public class MyViewModel { [Required] public string Foo { get; set; } public string Bar { get; set; } } 控制器: public class HomeController : Controller { publi ...
  • OP的评论: 我确实有IE'在兼容性视图中显示内部网站点'检查,因为我们必须为我们和 使用有效的HTML并且不要强制网站进入“兼容模式”。 兼容模式仅设计为后备,以帮助旧代码在较新版本的Explorer中工作。 OP's comment: i do have for IE 'display intranet sites in c ...
  • 我设法通过为该一个输入字段的错误类添加一个不同的类来解决这个问题。 通过这样做,它允许我将这些错误消息设置为与表单生成的其他错误消息不同。 JavaScript - 这会添加到您当前的验证功能中 errorPlacement: function(error, element) { if(element.attr("id") == 'username'){ // match your element's id error.addClass("errorclass"); // ad ...