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. Day6-T1

    原题目 Describe:模拟大水题 code: #include<bits/stdc++.h> #define INF 214748364 #define eps 1e-9 #defin ...

  2. 官方关于Dialog的介绍

    将Activity显示成Dialog的形式: Tip: If you want a custom dialog, you can instead display an Activity as a di ...

  3. 024、Java中字符串连接字符串拼接

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  4. ios端简单改变webView的黑白夜模式

    extension HTController:WKUIDelegate, WKNavigationDelegate,WKScriptMessageHandler { func userContentC ...

  5. Educational Codeforces Round 63 选做

    D. Beautiful Array 题意 给你一个长度为 \(n\) 的序列.你可以选择至多一个子段,将该子段所有数乘上给定常数 \(x\) .求操作后最大的最大子段和. 题解 考虑最大子段和的子段 ...

  6. 【php】PHP现代框架代表-Laravel框架核心技术特性

    一.php语言特点及发展现状 1.服务端脚本语言,自由度太大 ,一个业务逻辑可言写在模型里,控制器里,也可以单独封装成一个类,甚至可以嵌入到html里,这样势必会造成混乱,业务逻辑散落在各处,尤其对于 ...

  7. 解决dispatch 后在当前页面不能获取最新的this.props中的数据

    因为dispatch为异步方法  .解决这个问题方法很多  出去添加定时器这种不是很优雅的方法  我们可以用 componentWillReceiveProps(nextProps) 这个生命周期  ...

  8. Babel(1)认识Babel

    阅读文档 Babel中文网 关于 Babel 你必须知道的 如何写好.babelrc?Babel的presets和plugins配置解析 不容错过的 Babel 7 知识汇总 一口(很长的)气了解 b ...

  9. JAVA - SpringBoot项目跨域访问

    JAVA - SpringBoot添加支持CORS跨域访问 CORS(Cross-Origin Resource Sharing)“跨域资源共享”,是一个W3C标准,它允许浏览器向跨域服务器发送Aja ...

  10. Codeforces 459C Pashmak and Buses 机智数学题

    这个题目说的是有n个人,有k辆巴士,有m天,每天都要安排n个人坐巴士(可以有巴士为空),为了使得这n个人不会成为朋友,只要每两个人在这m天里坐的巴士至少一天不相同即可. 要你求是否有这样的安排方法,如 ...