/**
* 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. jQuery.dialog

    本篇文章主要是对JQUERY中dialog的用法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 今天用到了客户端的对话框,把 jQuery UI 中的对话框学习了一下. 准备 jQ ...

  2. github上值得研究的项目和人

    https://github.com/Dax89?tab=repositories https://github.com/stars/gabrielcorado https://github.com/ ...

  3. BAT 批处理实现循环备份N天文件夹

    @echo off set today=%date:~0,4%%date:~5,2%%date:~8,2% xcopy  /E /I E:\aaa e:\test\%today% for /f &qu ...

  4. 【HDOJ】5128

    暴力+计算几何. /* 5128 */ #include <iostream> #include <algorithm> #include <cstdio> #in ...

  5. MFC重绘函数:InvalidateRect(), Invalidate()和UpdateWindow()

    1. 重绘消息 当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和WM_NCPAINT(通知非客户区有变化) WM_NCPAINT系统会自己搞定 WM_PAINT消 ...

  6. 【最短路】Vijos P1022Victoria的舞会2

    题目链接: https://vijos.org/p/1022 题目大意: 给一张N个点的有向图,求有几块强连通分量.(N<=200) 题目思路: [动态规划] n比较小,可以用floyd暴力把每 ...

  7. 将汉字转化为拼音,正则表达式和得到汉字的Unicode编码

    一:上图,不清楚的看代码注解,很详细了 二:具体代码 窗体代码 using System; using System.Collections.Generic; using System.Compone ...

  8. DIV+CSS布局问题:一个宽度不确定的DIV里面放三个水平对齐的DIV,左右两个DIV宽度固定为150px,中间那个DIV充满剩余的宽度

    一个入门的DIV+CSS布局问题:一个宽度不确定的DIV里面放三个水平对齐的DIV,左右两个DIV宽度固定为150px,中间那个DIV充满剩余的宽度. 说明:代码非真实情况下使用,所以直接简单. 没耐 ...

  9. HDOJ 2802 F(N)

    Problem Description Giving the N, can you tell me the answer of F(N)? Input Each test case contains ...

  10. 微信支付【get_brand_wcpay_request:fail_invalid appid】

    微信支付授权目录一定要注意大小写 艹 如下的WXPay2 千万不要写成WxPay2了 参考地址:http://q.cnblogs.com/q/70405/ 微信支付代码下载:http://files. ...