日期控件、校驗

<td class="entryTimeTd"><span class="redStar">*</span>入職日期:</td><td class="entryTimeTd"><input type="text" class="" id="entryTimeEdit" name ="entryTimeEdit"  onClick="datePickerInit('entryTimeEdit','YYYY-MM-DD',false)" readonly="readonly" ><span id="entryTimeError" style="color: red"></span></td>

/**
 * datePickerInit.js 小工具 使用前提條件-----引入jquery-1.11.3.js jedate.js domId :
 * 需要填充日期的DOM元素的id 比如是一個input的id format: 需要填充日期的格式 例如 "YYYY-MM-DD hh:mm:ss"
 * "YYYY-MM-DD hh:00:00" "YYYY-MM-DD hh:59:59" "YYYY年MM月DD日 hh時mm分ss秒" isTime:
 * 是否開啓時間選擇
 */
function datePickerInit(domId, format, isTime) {
var datePickerOptions = {
dateCell : "#" + domId, // 目標元素。由於jedate.js封裝了一個輕量級的選擇器,因此dateCell還允許你傳入class、tag這種方式
// '#id .class'
format : format, // 日期格式
//minDate : "2017-08-15", // 最小日期
// maxDate:"2099-12-31 23:59:59", //最大日期
isinitVal : true, // 是否初始化時間
isTime : isTime, // 是否開啓時間選擇
isClear : true, // 是否顯示清空
festival : false, // 是否顯示節日
zIndex : 999, // 彈出層的層級高度
marks : null, // 給日期做標註
choosefun : function(val) {
}, // 選中日期後的回調
clearfun : function(val) {
}, // 清除日期後的回調
okfun : function(val) {
} // 點擊確定後的回調
};
jeDate(datePickerOptions);
}





//registerAction.js

  function validateForm(){

 var name=document.getElementById("username").value.trim();
 var password=document.getElementById("password").value.trim();
 var repassword=document.getElementById("repassword").value.trim();
 var mobile=document.getElementById("mobile").value.trim();
     if(checkUserName()&&checkPassword()&&checkRepassword()&&checkMobile()){
       $.ajax({
type : 'post',
dataType : 'json',
url : basePath + 'registerrest/registerSave?random=' + Math.random(),
data:{
"name":name, 
"password":password,
"mobile":mobile
},

success : function(data){
if(data== 1){
zeroModal.alert("恭喜您!註冊成功!");
}else if(data == 2){
zeroModal.alert("註冊用戶信息失敗");
}else{
zeroModal.alert("用戶手機重複,請重新輸入");
}
}
});
     }else{
    zeroModal.alert("註冊失敗,請重新輸入!");
     }
  }


  function submit(obj){
 $.ajax({
type : 'post',
dataType : 'json',
url : basePath + 'registerrest/registerSave?random=' + Math.random(),
data : obj,
success : function(data){
if(data == 1){
zeroModal.alert('恭喜您!註冊成功!');
}else if(data == 2){
zeroModal.alert('註冊用戶信息失敗');
}else{
zeroModal.alert('用戶手機重複,請重新輸入');
}
}
});
  }


function checktips(id){
document.getElementById(id+"Info").innerHTML="";
}


function resetForm(){
document.getElementById("username").innerHTML="";
document.getElementById("password").innerHTML="";
document.getElementById("repassword").innerHTML="";
document.getElementById("mobile").innerHTML="";
}


function checkUserName(){
    var name=document.getElementById("username").value.trim();
//    var name = $("#username").val().trim();
    var nameRegex=/^[^@#]{3,16}$/;
    if(name==""){
    document.getElementById("usernameInfo").innerHTML="請輸入用戶名!";
    }else if(!nameRegex.test(name)){
        document.getElementById("usernameInfo").innerHTML="用戶名爲3~16個字符,且不能包含”@”和”#”字符";
    }else{
        document.getElementById("usernameInfo").innerHTML="";
        return true;
    }
}


//驗證密碼(長度在8個字符到16個字符)
function checkPassword(){
  var password=document.getElementById("password").value.trim();
  //var password=$("#password").value;
//  $("#passwordInfo").innerHTML="";
  //密碼長度在5個字符到20個字符,由字母、數字和".""-""_""@""#""$"組成
  //var passwordRegex=/^[0-9A-Za-z.\-\_\@\#\$]{8,16}$/;
  //密碼長度在5個字符到20個字符,由字母、數字和"_"組成
  var passwordRegex=/^[0-9A-Za-z_]\w{4,19}$/;
  if(password==""){
 document.getElementById("passwordInfo").innerHTML="請輸入密碼!";
  }else if(!passwordRegex.test(password)){
      document.getElementById("passwordInfo").innerHTML="密碼長度必須在5個字符到20個字符之間,由字母、數字和下劃線(_)組成";
  }else if(password.length < 5 || password.length > 20 ){
 document.getElementById("passwordInfo").innerHTML="密碼長度必須在5個字符到20個字符之間";
  }else{
      document.getElementById("passwordInfo").innerHTML="";
      return true;
  }
}


//驗證校驗密碼(和上面密碼必須一致)
function checkRepassword(){
  var repassword=document.getElementById("repassword").value.trim();
  var password=document.getElementById("password").value.trim();
  //校驗密碼和上面密碼必須一致
  if(repassword==""){
 document.getElementById("repasswordInfo").innerHTML="請確認密碼!";
  }else if(repassword!=password){
      document.getElementById("repasswordInfo").innerHTML="兩次輸入的密碼不一致";
  }else if(repassword==password){
      document.getElementById("repasswordInfo").innerHTML="";
      return true;
  }
}
//驗證郵箱
function checkEmail(){
  var email=document.getElementById("email").value.trim();
  var emailRegex=/^[a-zA-Z0-9][a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+(\.[a-zA-Z]+){1,3}$/;
  if(email==""){
 document.getElementById("emailInfo").innerHTML="郵箱不能爲空";
  }else if(!emailRegex.test(email)){
 document.getElementById("emailInfo").innerHTML="郵箱格式不正確";
  }else if(email.length > 40){
 document.getElementById("emailInfo").innerHTML="郵箱長度過長";
  }else{
 document.getElementById("emailInfo").innerHTML="";
 return true;
  }
}
//驗證手機號
function checkMobile(){
var mobile=document.getElementById("mobile").value.trim();
var mobileRegex = /^1[3|4|5|8|7][0-9]\d{8}$/;
if(mobile==""){
document.getElementById("mobileInfo").innerHTML="請輸入手機號";
}else if(!mobileRegex.test(mobile)){
 document.getElementById("mobileInfo").innerHTML="手機號不正確";
}else if(mobile.length != 11){
document.getElementById("mobileInfo").innerHTML="手機號爲11位,顯示不正確";
}else{
// document.getElementById("mobileInfo").innerHTML="";
$("#mobileInfo").innerHTML="";
return true;
}

}


//global.js

(function () {
    "use strict";
    $(function () {
        //init all datepicker
        $('.date_picker').datepicker({
            language: "zh-CN",
            autoclose: true
        });


        //according to user rights to init document element
        window.top.$_icss_namespace("icss.framework.utils.auth").loadAuth();


        //todo kill window history back
        //window.top.$_icss_namespace("icss.framework.utils.winAction").killHistory();
    })
})();


//icss_namespace.js

(function () {
    "use strict";
    window.top.$_icss_namespace = function () {
        var ns, d;
        ns = window.top;
        if (arguments[0]) {
            d = arguments[0].split(".");
            for ( var i = 0; i < d.length; i++) {
                ns = ns[d[i]] = ns[d[i]] ? ns[d[i]] : {};
            }
        }
        return ns;
    }
})();


//utils.js

/**
 * Created by chunsibo on 2017/5/4.
 * icss.framework.utils 依賴以下JS
 * 依賴:[underscore, jquery, moment]
 * 輸出包:[kit, url, auth]
 */
(function (jQuery) {
    "use strict";
    var utils = window.top.$_icss_namespace("icss.framework.utils");


    // icss.framework.utils.kit
    var _kit = utils.kit = window._.noConflict();


    var _url_inner = {
        encodeUriQuery: function (val, pctEncodeSpaces) {
            return encodeURIComponent(val)
                .replace(/%40/gi, '@')
                .replace(/%3A/gi, ':')
                .replace(/%24/g, '$')
                .replace(/%2C/gi, ',')
                .replace(/%3B/gi, ';')
                .replace(/%20/g, (pctEncodeSpaces ? '%20' : ' '));
        }
    };
    // icss.framework.utils.url
    utils.url = {
        /**
         * build url by parameters
         * @param url
         * @param params
         * @returns {*} url like http://127.0.0.1:888/api?model=job&action=list
         */
        buildUrl: function (url, params) {
            if (!params) return url;
            var parts = [];
            _kit.each(params, function (value, key) {
                if (_kit.isNull(value) || _kit.isUndefined(value)) return;
                if (!_kit.isArray(value)) {
                    value = [value];
                }


                if (!_kit.isObject(value)) {
                    parts.push(_url_inner.encodeUriQuery(key) + '=' +
                        _url_inner.encodeUriQuery(value));
                } else {
                    _kit.each(value, function (v) {
                        if (_kit.isObject(v)) {
                            if (_kit.isDate(v)) {
                                v = v.toISOString();
                            } else {
                                v = JSON.stringify(v);
                            }
                        }
                        parts.push(_url_inner.encodeUriQuery(key) + '=' +
                            _url_inner.encodeUriQuery(v));
                    });
                }
            });
            if (parts.length > 0) {
                url += ((url.indexOf('?') == -1) ? '?' : '&') + parts.join('&');
            }
            return url;
        },
        /**
         * get url parameters
         * @param win : current window
         * @returns {*} Object
         */
        getUrlParams: function (win) {
            if (!win || !win.location) return undefined;
            var url = win.location.search;
            var paramsObj = {};
            if (url.indexOf("?") != -1) {
                var paramsStr = url.substr(1);
                var params = paramsStr.split("&");
                for (var i = 0; i < params.length; i++) {
                    var kv = params[i].split("=");
                    var k = kv[0], v = kv[1];
                    if (paramsObj.hasOwnProperty(k)) {
                        if (_kit.isArray(paramsObj[k])) {
                            paramsObj[k].push(decodeURIComponent(v));
                        } else {
                            var pre = paramsObj[k];
                            paramsObj[k] = [];
                            paramsObj.push(pre);
                            paramsObj.push(decodeURIComponent(v));
                        }
                    } else {
                        paramsObj[k] = decodeURIComponent(v);
                    }
                }
            }
            return paramsObj;
        }
    };


    // icss.framework.utils.moment
    utils.moment = window.moment;


    // icss.framework.utils.auth
    utils.auth = {
        /**
         * control document element show or hide by user permission;
         * when app document ready, framework call this;
         */
        loadAuth: function () {
            jQuery("[auth]").each(function () {
                var auth = jQuery(this).attr("auth");
                var userAuth = $user.auth;
                if (userAuth.indexOf('$' + auth + '$') == -1) {
                    jQuery(this).hide();
                }
            });
        },


        /**
         * judge user has one right;
         * @param auth
         * @returns {boolean}
         */
        hasAuth: function (right) {
            var userAuth = $user.auth;
            if (userAuth.indexOf('$' + right + '$') == -1) {
                return false;
            }
            return true;
        }
    };


    // icss.framework.utils.standerResult
    utils.standerResult = {
        /**
         * build stander success message
         * @param data
         * @returns {{success: boolean, data: *, message: string}}
         */
        getSuccessResult: function (data) {
            return {success: true, data: data, message: ''}
        },


        /**
         * build stander error message
         * @param msg
         * @returns {{success: boolean, data: null, message: *}}
         */
        getErrorResult: function (msg) {
            return {success: false, data: null, message: msg}
        }
    };


    utils.winAction = {
        /**
         * kill window history action
         */
        killHistory: function () {
            history.pushState(null, null, document.URL);
            window.addEventListener('popstate', function () {
                history.pushState(null, null, document.URL);
            });
        }
    }
})(window.jQuery);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章