/**
* 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. android的padding和margin的区别

    android:padding和android:layout_margin的区别:padding是站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离. margin则是站在 ...

  2. 《30天自制操作系统》读书笔记(5) GDT&IDT

    梳理项目结构 项目做到现在, 前头的好多东西都忘了, 还是通过Makefile重新理解一下整个项目是如何编译的: 现在我们拥有这么9个文件: ipl10.nas    InitialProgramLo ...

  3. 转:简单介绍 P3P 技术

    原文来自于:http://blog.csdn.net/ghj1976/article/details/4889219 以 Internet Explorer 为例,默认情况下,IE的隐私策略如下图所设 ...

  4. Gridview BottomPagerRow添加自定义控件

    pager.ascx public partial class pager : System.Web.UI.UserControl{ } .aspx protected pager ctl; prot ...

  5. nodejs--book

    https://github.com/0xlen/nodejs-wiki-book http://www.nodebeginner.org/index-zh-cn.html http://book.n ...

  6. unity3d 幻灯片效果实现

    上一篇使用的是静态方式进行的加载,采用的数据结构为 数组 该篇文章则是使用动态加载的方式实现: this.objsOfRouses = Resources.LoadAll("images&q ...

  7. NtQuerySystemInformation的使用(提供50余种信息)

    今天,我们主要讨论的是一个函数NtQuerySystemInformation(ZwQuerySystemInformation).当然,你不要小看这么一个函数,它却为我们提供了丰富的系统信息,同时还 ...

  8. LightOJ 1422 Halloween Costumes(记忆化搜索)

    题意:给你n天分别要穿的衣服,可以套着穿,但是一旦脱下来就不能再穿了,问这n天要准备几件衣服.      =============================================== ...

  9. Python中的迭代器和生成器

    本文以实例详解了python的迭代器与生成器,具体如下所示: 1. 迭代器概述: 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后 ...

  10. [Locked] Wiggle Sort

    Wiggle Sort Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= ...