前端架构相关笔记

1、简单少重用的前端模板可以配合underscore的模板引擎用script

  <script type="text/template" id="template_authorize_user">...</script>

  注:解决语法和jsp冲突的问题 可以用转义 <\%=url%>,也可以_.templateSettings = {interpolate : /{{(.+?)}}/g};

2、验证插件,jqueryvalidate支持控件元素自定义属性验证,支持metadata

//中文参考 http://www.w3cschool.cc/jquery/jquery-plugin-validate.html

//使用 
<input class="form-control" name="taskName" type="text" id="taskName" value="" validate="{required:true,email:true,maxlength:6}"/>

//validate.js 扩展
//参考 http://www.cnblogs.com/yanjunwu/p/3764740.html
metadataRules: function(element) {
    var rules = {},
        vs = $( element ).attr( "validate" );
    if(! vs) return rules;
    vs=vs.trim();
    if(/^{.*}$/.test(vs)){
        if (!$.metadata) return {};
        var meta = $.data(element.form, 'validator').settings.meta;
        rules=meta ? $(element).metadata()[meta] : $(element).metadata();            
    }else{
        $.each( vs.split(" "), function() {
            if ( this in $.validator.classRuleSettings ) {
                $.extend( rules, $.validator.classRuleSettings[ this ]);
            }
        });    
    }
    return rules;
}

//通用 配置
//metadata 设置
$.metadata.setType('attr','validate');
//validate设置
jQuery.extend(jQuery.validator.messages, {
        required: "不能为空",
        remote: "请修正该字段",
        email: "请输入正确格式的电子邮件",
        url: "请输入合法的网址",
        date: "请输入合法的日期",
        dateISO: "请输入合法的日期 (ISO).",
        number: "请输入合法的数字",
        digits: "只能输入整数",
        creditcard: "请输入合法的信用卡号",
        equalTo: "请再次输入相同的值",
        accept: "请输入拥有合法后缀名的字符串",
        maxlength: jQuery.validator.format("请输入一个长度最多是 {0} 的字符串"),
        minlength: jQuery.validator.format("请输入一个长度最少是 {0} 的字符串"),
        rangelength: jQuery.validator.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
        range: jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"),
        max: jQuery.validator.format("请输入一个最大为 {0} 的值"),
        min: jQuery.validator.format("请输入一个最小为 {0} 的值")
});

jQuery.extend(jQuery.validator.defaults, {
    errorElement : 'span',
    errorClass : 'help-block',
    highlight : function(ele) {
        $(ele).closest('.form-group').addClass('has-error');
    },
    success : function(ele) {
        ele.closest('.form-group').removeClass('has-error');
        ele.remove();
    },
    errorPlacement : function(error, ele) {
        ele.closest('div').append(error);
    },
    ignore: ""//禁止忽略不可见元素 //默认忽略:hidden--参见http://jqueryvalidation.org/validate/#ignore
});
View Code
原文地址:https://www.cnblogs.com/youryida/p/4310828.html