1. 判断字符串是否为空

function isEmptyString(str) {
return str == undefined || str == "" || str == null;
}

2. 判断数据格式

2.1 判断是否邮箱格式

function isEmail(str) {
var re = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$");
return re.test(str);
}

2.2 判断是否整数格式

function isInt(str) {
var re = new RegExp("^-?[0-9]+$");
return re.test(str);
}

2.3 判断是否浮点数字格式

function isFloat(str) {
var re = new RegExp("^-?[0-9]+\.[0-9]+$");
return re.test(str);
}

3. 获取object中属性的值

function getObjectData(object, field) {
var fieldArray = field.split(".");
var childObj = object;
$.each(fieldArray, function(i, n) {
childObj = childObj[n];
})
return childObj;
}

例如:

var test = {a:"aaa",b:{c:"ccc",d:{e:"eee",f:"fff"}}};

var testResult = getObjectData(test,"a.b.d.f");

获得到的testResult的值为"fff"。

4. 扩展日期类型,增加格式化功能

Date.prototype.Format = function(fmt) {
var o = {
"M+" : this.getMonth() + 1,
"d+" : this.getDate(),
"h+" : this.getHours(),
"m+" : this.getMinutes(),
"s+" : this.getSeconds(),
"q+" : Math.floor((this.getMonth() + 3) / 3),
"S" : this.getMilliseconds()
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for ( var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}

5. 设定整个页面的keyPress事件响应

function setGloableKeyPress(keyCode, onKeyPress) {
document.onkeydown = function(e) {
var ev = document.all ? window.event : e;
if (ev.keyCode == keyCode) {
onKeyPress();
}
}
}

6. form表单功能扩展

6.1 表单输入元素中回车响应

$.fn.formAutoSearch = function(onSearch) {
var id = $(this).attr("id");
$("#" + id + " :input").not(':button, :submit, :reset').keypress(function(e) {
if (e.keyCode == 13) {
onSearch();
}
})
}

6.2 检测表单输入合法性(需要html元素属性支持)

$.fn.formCheck = function(funMsg) {
var rtn = true; var id = $(this).attr("id");
var inputs = $("#" + id + " :input").not(':button, :submit, :reset');
$.each(inputs, function(i, n) {
var caption = $(this).attr("caption"); var maxLength = $(this).attr("maxlength");
if (isEmptyString(maxLength) == false) {
var val = "";
if ($(this).is("input")) {
val = $(this).val();
} else if ($(this).is("textarea")) {
val = $(this).html();
}
if (val.length > parseInt(maxLength)) {
if (funMsg != undefined) {
funMsg(caption + "输入长度超过限制");
}
rtn = false;
}
}
var notNull = $(this).attr("notnull");
if (notNull == "true") {
var val = "";
if ($(this).is("input")) {
val = $(this).val();
} else if ($(this).is("textarea")) {
val = $(this).html;
} else if ($(this).is("select")) {
val = $(this).val();
}
if (val.length == 0) {
if (funMsg != undefined) {
funMsg("请填写" + caption);
}
rtn = false;
}
}
var chkEmail = $(this).attr("isemail");
if (chkEmail == "true") {
var val = "";
if ($(this).is("input")) {
val = $(this).val();
} else if ($(this).is("textarea")) {
val = $(this).html;
}
if (isEmail(val) == false) {
if (funMsg != undefined) {
funMsg("您填写的" + caption + "不是有效的邮箱格式,请重新填写");
}
rtn = false;
}
}
var chkNum = $(this).attr("isint");
if (chkNum == "true") {
val = $(this).val();
if (isInt(val) == false) {
if (funMsg != undefined) {
funMsg("您填写的" + caption + "不是有效的数字格式,请重新填写");
}
rtn = false;
}
}
var chkFloat = $(this).attr("isfloat");
if (chkFloat == "true") {
val = $(this).val();
if (isFloat(val) == false) {
if (funMsg != undefined) {
funMsg("您填写的" + caption + "不是有效的数字格式,请重新填写");
}
rtn = false;
}
}
});
return rtn;
}

6.3 清除表单

$.fn.formClear = function() {
var id = $(this).attr("id");
var inputs = $("#" + id + " :input").not(':button, :submit, :reset');
$.each(inputs, function(i, n) {
if ($(this).is("input")) {
if ($(this).attr("type") == "text" || $(this).attr("type") == "hidden" || $(this).attr("type") == undefined) {
$(this).val("");
} else if ($(this).attr("type") == "checkbox") {
$(this).prop("checked", false);
} else if ($(this).attr("type") == "radio") {
$(this).prop("checked", false);
} else if ($(this).attr("type") == "password") {
$(this).val("");
}
} else if ($(this).is("textarea")) {
$(this).html("");
} else if ($(this).is("select")) {
var nid = $(this).attr("id");
$("#" + nid + " option:first").attr("selected", "selected");
}
})
}

6.4 填充表单

$.fn.formFill = function(data) {
var id = $(this).attr("id");
var inputs = $("#" + id + " :input").not(':button, :submit, :reset');
$.each(inputs, function(i, n) {
var attr = $(this).attr("name");
var valStr = getObjectData(data, attr);
if (valStr == null || valStr == undefined) {
valStr = "";
} else {
valStr = valStr.toString();
}
if ($(this).is("input")) {
if ($(this).attr("type") == "text" || $(this).attr("type") == "hidden" || $(this).attr("type") == undefined) {
$(this).val(valStr);
} else if ($(this).attr("type") == "checkbox") {
$(this).prop("checked", valStr);
} else if ($(this).attr("type") == "radio") {
$(this).prop("checked", valStr);
} else if ($(this).attr("type") == "password") {
$(this).val(valStr);
}
} else if ($(this).is("textarea")) {
$(this).html(valStr);
} else if ($(this).is("select")) {
$(this).val(valStr);
}
})
}

7. css中px的数值操作

7.1 获取css中px的数值

$.fn.getCssPx = function(cssProp) {
var cssStr = $(this).css(cssProp);
cssStr = cssStr.substr(0, cssStr.length - 2);
return parseInt(cssStr);
}

7.2 设定css中px的数值

$.fn.setCssPx = function(cssProp, value) {
$(this).css(cssProp, value + "px");
}

8. 未完待续

JS/JQUERY函数库的更多相关文章

  1. 前端之jquery函数库

    jquery介绍 jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. ...

  2. JQuery函数库

    核心Core 函数$()动态创建由 jQuery 对象包装的 DOM 元素$.unique()去重排序函数$.inArray()在数组中搜索指定的值并返回其索引$.merge()合并数组 属性Para ...

  3. js jquery 函数回调

    JS 函数回调 $('#btn_update').click(function () { var table_id = $table.bootstrapTable('getSelections')[0 ...

  4. js jQuery函数 $.ajax()

    $.ajax() //$表示是jQuery cache:  要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中 ...

  5. 转:common.js 常用js公共函数库

    转自其他博主,自己开发备用 var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data: data, d ...

  6. css,js,jquery的载入方式和属性控制

    本文章主要总结了css,js,jQuery在编写程序时的载入方式,与属性控制方式html和css共同组成了一个最基础的网页,js为标签样式提供动态效果 一,css的载入方式与属性控制 1.1,css引 ...

  7. 在easyUI开发中,出现jquery.easyui.min.js函数库问题

    easyUI是jquery的一个插件,是民间的插件.easyUI使用起来很方便,里面有网页制作的最重要的三大方块:javascript代码.html代码和Css样式.我们在导入easyUI库后,可以直 ...

  8. Underscore——JS函数库

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826065.html underscore是什么——它是一个js函数库 jQuery统一了不同浏览器之间的 ...

  9. js jquery版本的 金额千分位转换函数(非正则,效率极高)

    没想到js里面没有 金额千分位格式化的处理函数(例:1,234.01 这样的格式),网上搜了一圈,都是使用正则的方式处理的.正则的效率不敢恭维啊,又耗费资源速度又慢(虽然处理起来会直观一些). 因此专 ...

随机推荐

  1. 磁盘空间引起ES集群shard unassigned的处理过程

    1.问题描述 早上醒来发现手机有很多ES状态为red的告警,集群就前几天加了几个每天有十多亿记录的业务,当时估算过磁盘容量,应该是没有问题的,但是现在集群状态突然变成red了,这就有点懵逼了. 2.查 ...

  2. 编程练习:求某个数的n次方,返回其个位和十位

    #!/usr/bin/env python def pow1(n,m): if m==0: return 1 if m==-1: return (1/n) if m & 1 != 0: ret ...

  3. Docker 学习之镜像导入导出及推送阿里云服务器(三)

    在前面两节里主要就是记录一些docker的基本的操作,包括搜索镜像,拉取镜像,根据镜像创建容器等等,在这一节主要就是记录Docker对于镜像文件的导入导出,及推送到阿里云再从阿里云获取镜像. 一.镜像 ...

  4. Java并发——volatile的原理

    111 Java并发——volatile的原理

  5. android侧滑效果(引用官方网站提供的API文件)

    原文地址:http://www.cnblogs.com/android100/p/android-SlidingMenu.html 在新浪微博和唱吧里面都有看到android的侧滑效果,于是想要学习一 ...

  6. 十六、React 渲染数据注意事项、以及react-router4.x中使用js跳转路由(登录成功自动跳转首页)

    一.React加载数据流程回顾 先看上一节的产品详情代码:https://blog.csdn.net/u010132177/article/details/103184176 [Pcontent.js ...

  7. DevOps - 为什么

    章节 DevOps – 为什么 DevOps – 与传统方式区别 DevOps – 优势 DevOps – 不适用 DevOps – 生命周期 DevOps – 与敏捷方法区别 DevOps – 实施 ...

  8. java简写名词解释

    RPC(Remote Procedure Call)—远程过程调用 实时编译器(Just In Time Compiler,JIT) XML 指可扩展标记语言(EXtensible Markup La ...

  9. poi 导出Excel java代码

    js: function initBatchExport(url,sub_key,current_sub_num){ var btn_id="#btn_char"+current_ ...

  10. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring使用AspectJ开发AOP基于XML和基于Annotation

    AspectJ 是一个基于 Java 语言的 AOP 框架,它扩展了 Java 语言.Spring 2.0 以后,新增了对 AspectJ 方式的支持,新版本的 Spring 框架,建议使用 Aspe ...