﻿$(document).ready(function() {

    // 中文字两个字节    
    jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {
        var length = value.length;
        for (var i = 0; i < value.length; i++) {
            if (value.charCodeAt(i) > 127) {
                length++;
            }
        }
        return this.optional(element) || (length >= param[0] && length <= param[1]);
    }, "请确保输入的值在3-15个字节之间(一个中文字算2个字节)");

    jQuery.validator.addMethod("password", function(value, element) {
        var result = this.optional(element) || value.length >= 6;
        if (!result) {
            element.value = "";
            var validator = this;
            setTimeout(function() {
                validator.blockFocusCleanup = true;
                element.focus();
                validator.blockFocusCleanup = false;
            }, 1);
        }
        return result;
    }, "你的密码至少6位字符");

    jQuery.validator.addMethod("userName", function(value, element) {
        return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);
    }, "用户名只能包括中文字、英文字母、数字和下划线");

    // 电话号码验证    
    jQuery.validator.addMethod("isPhone", function(value, element) {
        var tel = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
        return this.optional(element) || (tel.test(value));
    }, "请正确填写您的电话号码,如010-69410085");

    jQuery.validator.messages.required = "";
    $("#form1").validate({
        rules: {
            userName: {
                required: true,
                userName: true,
                byteRangeLength: [3, 15]
            },
            phone: {
                required: false,
                isPhone: true
            },
            date:
            {
                required: false
            }
        },
        invalidHandler: function(e, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
                var message = errors == 1
					? '有 1 项填写不正确'
					: '有 ' + errors + ' 项填写不正确';
                $("div.error span").html(message);
                $("div.error").css('visibility', 'visible');
            } else {
                $("div.error").css('visibility', 'hidden');
            }
        },
        onkeyup: false,
        //        submitHandler: function() {
        //            $("div.error").css('visibility', 'hidden');
        //        },
        messages: {
            userName: {
                required: "请填写用户名",
                byteRangeLength: "用户名必须在3-15个字符之间(一个中文字算2个字符)"
            },
            password2: {
                required: " ",
                equalTo: "请输入相同密码"
            },
            email: {
                required: " ",
                email: "请输入正确的邮件地址"//,
                //remote: jQuery.validator.format("{0} is already taken, please enter a different address.")
            },
            date: {
                required: " ",
                date: "请输入正确的日期格式"
            }
}//,
            //debug: true
        });

        $("input.date").mask("9999/99/99");

        $('input[type=text],input[type=password]').addClass('inputText');
        $('input[type=submit]').addClass('inputSubmit');

    });

