/**
* Created by shanruo on 16-03-10.
*/ (function ( $ ){ $.extend ({ /*
* 根据参数名获取参数 @name String 参数名
*/
queryString : function ( name ){
name = name.replace (/[\[]/, "\\\[" ).replace (/[\]]/, "\\\]" );
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp (regexS );
var results = regex.exec (window.location.search );
if (results == null) {
return "";
}
else {
return decodeURIComponent (results[1].replace (/\+/g, " " ) );
}
}, /*
* 根据URL地址后退 @URL String 需返回的后退URL地址
*/
goBack : function ( url ){
if (url !== "" && typeof url !== "undefined") {
var parameters = window.location.search;
url = url + parameters;
window.location.href = url;
}
else {
window.history.back ();
}
}, // layer 加载层
loading : function ( msg ){
if (!msg) {
msg = '数据加载中...';
}
$.layer ({
time : 0, // 显示多久
shade : [ 0.3, '#000', true ],
loading : {
type : 2,
msg : msg
}, // loadGif 获取样式值,只能为0-3
border : [ 10, 0.3, '#000', true ],
type : 3,
title : [ '', false ],
closeBtn : [ 0, false ]
} );
}, // 关闭loding层
loadClose : function ( ){
layer.loadClose ();
}, clearQuery : function ( obj ){
// 清除条件
$ (obj ).find ("input[type='text']" ).val ("" ); // 日期清除条件
var dateInputObj = $ (obj ).find ("input[type='hidden']" );
dateInputObj.each (function ( ){
var self = $ (this );
if ($ (self ).attr ("isDate" ) === "true") {
var dateInputId = self.attr ("name" ).toString ().substring (3 );
$ ("input[name='"+dateInputId+"']").val (self.val () );
} } ) // 下拉列表选择第一个
$ (obj ).find ("select" ).each (function ( ){
$ (this ).find ("option:first" ).attr ("selected", "selected" )
} );
}, /*
* 回填文本框值 @objId String 回填对象 @queryStringName 回填参数值
*/
fillInputValue : function ( objId, queryStringName ){
if (objId === "" || typeof objId === "undefined") { return false; } if (queryStringName === "" || typeof queryStringName === "undefined") { return false; } var self = $ ("#" + objId );
var value = $.queryString (queryStringName );
if (self.is ('select' )) {
$ (self ).val (value )
}
if (self.attr ("type" ) === "text") {
$ (self ).val (value )
}
}, /*
* 根据URL跳转到前一页 @URL String 需返回的前一页URL地址 @urlParam json参数数据如:{parame1:"1",parame2:"2"}
*/
goForward : function ( url, urlParam ){
if (typeof urlParam === "undefined" || urlParam === null) {
urlParam = "";
} var pageIndex = $ ("#_MvcPager_Ctrl0_pib" ).val ();
var positionY = $ (document ).scrollTop ();
$.extend (urlParam, {
"py" : positionY,
"pageIndex" : pageIndex
} );
var strPara = $.param (urlParam );
window.location.href = url + "&" + strPara;
}, /*
* 渲染返回行需要表示的行 @lineObj object 行索引对象
*/
animateLine : function ( lineObj ){
var py = $.queryString ("py" );
py = parseFloat (py );
var self = lineObj;
if (typeof lineObj !== Object) {
self = $ ("#" + lineObj );
}
// window.scrollTo(px, py);
$ ("html,body" ).animate ({
scrollTop : py
}, 1 );
self.css ("background", "#ccc" );
}, /*
* 日期比较函数 @startDate String 起始日期 @endDate String 截止日期 @crossMonthNum int 表示不能跨月数(包含)1表示不能跨1个月,小于等于0或者其他都不做判断. @keyWords String 关键字,重新拼接提示信息,默认"开始日期不能为空!";例:查询:重新定义为"查询开始日期不能为空!".
*/
compareDate : function ( startDate, endDate, crossMonthNum, keyWords ){
var start, // 起始时间
end, // 截止日期
yearNum, // 跨年数
monthNum, // 跨月数
strMonthNum, // 拼接语句,提示多少月
crossMonthMsg, // 提示语句
startYear, // 起始日期年份
endYear, // 截止日期年份
startMonth, // 起始日期月份
endMonth, // 截止日期年份
ReturnMsg = "", // 返回提示信息
ReturnMonthMsg = ""; // 返回跨月提示信息 if (startDate.replace (/(^\s*)|(\s*$)/g, "" ) === "") {
crossMonthMsg = "开始日期不能为空!";
if (keyWords !== "" && typeof keyWords !== "undefined") { return ReturnMsg = keyWords + crossMonthMsg; }
return crossMonthMsg;
}
if (endDate.replace (/(^\s*)|(\s*$)/g, "" ) === "") {
crossMonthMsg = "结束日期不能为空!";
if (keyWords !== "" && typeof keyWords !== "undefined") { return ReturnMsg = keyWords + crossMonthMsg; }
return crossMonthMsg;
} start = new Date (Date.parse (startDate.replace (/-/g, "/" ) ) );
end = new Date (Date.parse (endDate.replace (/-/g, "/" ) ) );
if (end < start) {
crossMonthMsg = "开始日期不能大于结束日期!";
if (keyWords !== "" && typeof keyWords !== "undefined") { return ReturnMsg = keyWords + crossMonthMsg; }
return crossMonthMsg;
} if (typeof crossMonthNum !== "number") {
crossMonthNum = 0;
} if (crossMonthNum !== "" && typeof keyWords !== "undefined") {
crossMonthNum = parseInt (crossMonthNum, 10 );
strMonthNum = crossMonthNum === 1 ? "" : crossMonthNum + "个";
crossMonthMsg = "查询时间不能跨" + strMonthNum + "月!";
if (keyWords !== "" && typeof keyWords !== "undefined") {
ReturnMonthMsg = keyWords + "时间不能跨" + strMonthNum + "月!";
}
else {
ReturnMonthMsg = crossMonthMsg;
} if (crossMonthNum < 12 && crossMonthNum > 0) {
yearNum = 0;
monthNum = crossMonthNum;
} if (crossMonthNum >= 12) {
yearNum = Math.round (crossMonthNum / 12 );
monthNum = Math.abs (crossMonthNum % 12 );
} startMonth = start.getMonth ();
endMonth = end.getMonth ();
startYear = start.getYear ();
endYear = end.getYear ();
/*
* yearNum 为0表示没有跨年按照跨月处理判断 为1表示跨年,按照跨年处理判断
*/
if (yearNum === 0) {
if (endYear - startYear === yearNum) {
if (endMonth - startMonth > monthNum - 1) { return ReturnMonthMsg; }
}
else if (endYear - startYear === yearNum + 1) {
if ((endMonth + 12) - startMonth > monthNum - 1) { return ReturnMonthMsg; }
}
else {
return ReturnMonthMsg;
}
}
else if (yearNum >= 1) {
if (endYear - startYear === yearNum) {
if (endMonth - startMonth > monthNum - 1) { return ReturnMonthMsg; }
}
else if (endYear === startYear) {
return ReturnMsg;
}
else {
return ReturnMonthMsg;
}
}
} return ReturnMsg;
}, /*
* 数组对象转换成Json对象 @obj object form对象
*/
serializeJson : function ( obj ){
var self = $ (obj );
var serializeObj = {};
var array = self.serializeArray ();
var str = self.serialize ();
$ (array ).each (function ( ){
this.value = filterKeyWord (this.value );
if (serializeObj[this.name]) {
if ($.isArray (serializeObj[this.name] )) {
serializeObj[this.name].push (this.value );
}
else {
serializeObj[this.name] = [ serializeObj[this.name], this.value ];
}
}
else {
serializeObj[this.name] = this.value;
}
} ); return serializeObj;
}, /*
* Json对象转换成json字符串 @obj object form对象
*/
jsonToString : function ( obj ){
var parameters = $ (obj )[0];
var arrResult = [];
for ( var key in parameters) {
var parValue = parameters[key]; if (parValue === null || parValue === undefined) {
continue;
}
parValue = filterKeyWord (parValue ); // 过滤"\"以免json序列化问题 arrResult.push ('"' + key + '":"' + parValue + '"' );
} var json = '{' + arrResult.join (',' ) + '}';
return json;
}, /**
* 文本框框正则验证
*
* @regType AZ:只能为字母, 09AZ:只能数字字母, 0.9:只能数字或小数,09:只能为整数
* @arrInputValidate 要验证的文本框数组如['validateInput1','validateInput2']
* @zero 最小值
* @max 最大值
*/
formatRegInput : function ( regType, arrInputValidate, zero, max ){
formatInputCommon (regType, arrInputValidate, zero, max );
}
} ); // 转义"\"特殊字符
function filterKeyWord ( strKeyWord ){
if (strKeyWord.indexOf ("\\" ) === -1) { return strKeyWord; } var str = strKeyWord.split ("\\" );
var len = str.length;
var arr = [];
for (var i = 0; i < len; i++) {
var keyValue = str[i];
arr.push (keyValue );
} return arr.join ("\\\\" );
} /* * 验证控件
*/
function formatInputCommon ( regType, arrInputValidate, zero, max ){
var reg = "";
if (regType.toUpperCase () === "AZ") {
reg = /[^(a-zA-Z)+$]/g;
}
else if (regType.toUpperCase () === "09AZ") {
reg = /[^(0-9a-zA-Z)+$]/g;
}
else if (regType === "0.9") {
reg = /[^(0-9)\.+$]/g;
}
else if (regType === "09") {
reg = /[^(0-9)+$]/g;
}
else {
return;
} var validateObj = [];
for (var i = 0; i < arrInputValidate.length; i++) {
validateObj.push ("input[name='" + arrInputValidate[i] + "']" );
} $ (validateObj.join ("," ) ).on ('keyup', function ( ){
var value = $ (this ).val ();
value = value.toUpperCase ().replace (reg, '' );
if (parseInt (value, 10 ) > max) {
value = max;
}
$ (this ).val (value );
} ); $ (validateObj.join ("," ) ).on ('blur', function ( ){
var value = $ (this ).val ();
value = value.toUpperCase ().replace (reg, '' );
if (zero === 0) {
if (value === "") {
value = 0;
}
} $ (this ).val (value );
} );
}
; }) (jQuery )

jquer “$” 扩展(笔记)的更多相关文章

  1. 下载php扩展笔记

    查找相关php的扩展网址https://pecl.php.net/index.php PECL 的全称是 The PHP Extension Community Library ,即PHP 扩展库.是 ...

  2. LINUX 安装扩展(笔记)

    1.下载扩展包: 网址:http://pecl.php.net/ 2.解压安装包. 3.进入解压好的安装包. 4.使用php中的phpize (扩展模块) 使其生成configure. 5../con ...

  3. ECMAScript 6入门扩展笔记

    字符串扩展 Unicode相关补充 引入"\u{xx}"来表示码点,之前只能表示\u0000-\uffff引入String.fromCodePoint()能正确读取大于uFFFF的 ...

  4. js框架设计1.2对象扩展笔记

    需要一个新的功能添加到我们的命名空间上.这方法在JS中被叫做extend或者mixin,若是遍历属性用一下1.1代码,则会遍历不出原型方法,所以1.2介绍的是mass Framework里的mix方法 ...

  5. es6的正则扩展笔记之修饰符

    es6对于正则表达式添加了 u 修饰符和 y 修饰符. u 修饰符:含义为“Unicode模式”,用来正确处理大于\uFFFF的Unicode字符.    该修饰符不光会正确处理正则表达式,还会正确处 ...

  6. PHP 扩展开发(将自己的一些代码封装成PHP扩展函数)

    今天时间不多,先给个地址,能搜到我这篇blog的朋友先看看我最近在看的一些文章.资料吧: 我的环境是 lnmp1.1 的 (LNMP一键安装包),所以要进行PHP扩展开发首先应该对环境配置和shell ...

  7. PHP正则表达式笔记和实例

    转自:  https://www.cnblogs.com/yafei236/p/4168290.html 本文主要介绍如何在PHP使用正则表达式,并附带几个实例. 这两天工作用到了正则表达式,发现自己 ...

  8. Win软件私家珍藏-常用软件工具使用总结

    原文:Win软件私家珍藏-常用软件工具使用总结 Windowns常用软件 看图 FastStoneImageViewer 免费软件,好用到爆!没广告!功能齐全!不光能看图,还能修图! Picasa3 ...

  9. IOC and DI

    Spring.Net 技术简介 IOC and DI   一 简单介绍            IOC 控制转移,就是将创建放到容器里,从而达到接耦合的目的,DI是 在容器创建对象的时候,DI读取配置文 ...

随机推荐

  1. bzoj1127: [POI2008]KUP

    Description 给一个n*n的地图,每个格子有一个价格,找一个矩形区域,使其价格总和位于[k,2k] Input 输入k n(n<2000)和一个n*n的地图 Output 输出矩形的左 ...

  2. 生成mif文件的几种方法总结

    mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据.生成QuartusII11.0可用的mif文件,有如下几种方式: 方法1:利用Q ...

  3. EasyPR--开发详解

    我正在做一个开源的中文车牌识别系统,Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR,也就是Easy to do Plate Reco ...

  4. BZOJ 1503 郁闷的出纳员

    Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常 ...

  5. cf D. Physical Education and Buns

    http://codeforces.com/contest/394/problem/D 题意:给你n个数,然后通过操作使得这n个数变为一个等差数列,操作是可以经过小于等于k次加1或减去1,要使得k尽量 ...

  6. Parencodings

    Description Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two diff ...

  7. Groovy学起来,这要和GRAILS,RUNDECK打成一片

    还好,以前看过RUBY和JAVA,GROOVY感觉和它们有点相似.. 并且,我觉得这个GROOVY比SCALA要简单些(函数式编程+OBJ) 作类比,毕竟是最快的学习方法. XXX,还有必修课和证券从 ...

  8. 这十大MCU厂商瓜分着中国市场

    MCU(Micro Control Unit)中文名称为微控制单元,又称单片微型计算机(Single Chip Microcomputer)或者单片机,是指随着大规模集成电路的出现及其发展,将计算机的 ...

  9. ASP.NET Routing

    ASP.NET Routing Other Versions   ASP.NET routing enables you to use URLs that do not have to map to ...

  10. 【HDOJ】3329 The Flood

    超简单BFS. /* 3329 */ #include <iostream> #include <queue> #include <cstdio> #include ...