javascript util.js
//根据Id获得页面元素
function $(para) {
return document.getElementById(para);
}
//创建一个新的元素
function createElement(type, name) {
if (name) {
var element = null;
try {
element = document.createElement("<" + type + " name=\"" + name + "\">");
}
catch (e) {
}
if (element == null) {
element = document.createElement(type);
element.name = name;
}
return element;
} else {
return document.createElement(type);
}
}
//检查是否为数字
function checkNum(obj) {
var re = /^-?[1-9]*(\.\d*)?$|^-?d^(\.\d*)?$/;
if (!re.test(obj)) {
if (isNaN(obj)) {
return false;
}
}
return true;
}
//去掉字符串首尾的空格
String.prototype.trim = function () {
var m = this.match(/^\s*(\S+(\s+\S+)*)\s*$/);
return (m == null) ? "" : m[1];
};
/** * 对JSON对象转换为字符串. * @param {json对象} json * @return {json字符串} */ function jsonObj2Str(json) { var str = "{"; for (prop in json) { str += prop + ":" + json[prop] + ","; } str = str.substr(0, str.length - 1); str += "}"; return str; } /** * 将json字符串转换为json对象. * @param {json字符串} jsonstr * @return {json对象} */ function jsonStr2Obj(jsonstr) { return eval("("+jsonstr+")"); } /** * 得到一个元素的left坐标值. * @param {dom对象} obj * @return {位置值} */ function getLeft(obj){ var offset=e.offsetLeft; if(e.offsetParent!=null) offset+=getLeft(e.offsetParent); return offset; } /** * 得到一个元素的绝对位置的top坐标值. * @param {dom对象} obj * @return {位置值} */ function getTop(obj){ var offset=e.offsetTop; if(e.offsetParent!=null) offset+=getTop(e.offsetParent); return offset; } /** * 删除一个字符串的左右空格. * @param {原始字符串} str * @return {删除空格之后的字符串} */ function trim(str) { return str.replace(/(^\s*)|(\s*$)/g,""); } /** * 根据id取出一个元素. * @param {元素id值} str * @return {dom对象} */ function $(str) { return document.getElementById(str); } /** * 按name获取一个对象. * @param {元素name值} str * @return {根据name返回的第一个对象} */ function $byName(str) { var arr = document.getElementsByName(str); if (arr) return arr[0]; else return null; } /***************以下方法和表单验证相关*************************************************/ /** * 返回非空字符串,如果有默认值就返回默认字符串. * @param {要进行转换的原字符串} str * @param {默认值} defaultStr * @return {返回结果} */ function notNull(str, defaultStr) { if (typeof(str) == "undefined" || str == null || str == '') { if (defaultStr) return defaultStr; else return ''; } else { return str; } } /** * 比较两个日期大小. * @param {较小日期的文本框id} smallDate * @param {较大日期的文本框id} bigDate * @param {出错的提示信息} msg */ function compareTwoDate(smallDate, bigDate, msg) { var v1 = $(smallDate).value; var v2 = $(bigDate).value; if (v1 >= v2) { alert(msg); v2.focus(); return false; } return true; } /** * 比较两个金额大小的方法. * @param {较小的金额} smallNum * @param {较大的金额} bigNum * @param {出错提示信息} msg * @return {Boolean} */ function compareTwoNum(smallNum, bigNum, msg) { var v1 = $(smallNum).value; var v2 = $(bigNum).value; if (parseFloat(v1) >= parseFloat(v2)) { alert(msg); v2.focus(); return false; } return true; } /** * 检查文本框的长度是否超出指定长度. * @param {文本id} textId * @param {文本框的最大长度} len * @param {文本框描述内容} msg * @return {有错就返回false,否则返回true} */ function checkLength(textId, len, msg) { obj = $(textId); str = obj.value; str = str.replace(/[^\x00-\xff]/g, "**"); realLen = str.length; if (realLen > len) { alert("[" + msg + "]" + "长度最大为" + len + "位," + "请重新输入!\n注意:一个汉字占2位。"); obj.focus(); return false; } else return true; } /** * 判断某个文本框不可以为空. * @param {文本框id} textId * @param {文本框描述内容} msg * @return {有错就返回false,否则返回true} */ function checkIfEmpty(textId, msg) { var textObj = $(textId); var textValue = textObj.value; if (trim(textValue) == '') { alert('[' + msg + ']不得为空!'); textObj.focus(); return false; } else { return true; } } /** * 判断指定文本框内容必须为邮件. * @param {文本框id} textId * @param {文本框描述} msg * @return {如果是邮件内容就返回true否则返回false} */ function checkIsMail(textId, msg) { var obj = $(textId); if (!_isEmail(obj.value)) { alert('[' + msg + ']不是合法的邮件地址!'); obj.focus(); return false; } else return true; } /** * 验证是不是邮件. * @param {要验证的字符串} strEmail * @return {Boolean} */ function _isEmail(strEmail) { //接下来的验证是否有两个以上的‘.’号,有的话就是错的! var first = strEmail.indexOf('.'); if (strEmail.indexOf('@')== -1) { return false; } var tempStr = strEmail.substring(first + 1); if (tempStr.indexOf('.') != -1) { return false; } if (strEmail .search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) { return true; } else return false; } /** * 判断某个文本框是否数字. * @param {文本框id} textId * @param {文本框描述内容} msg * @return {Boolean} */ function checkIsNum(textId, msg) { obj = $(textId); if (isNaN(obj.value)) { alert('[' + msg + ']必须为数字。'); obj.focus(); return false; } else return true; } /** * 判断某个文本框是否含有非法字符. * @param {文本框的id} textId * @param {文本框描述内容} msg * @return {有错就返回false否则返回true} */ function checkIsValid(textId, msg) { obj = $(textId); if (!_isValidString(obj.value, '[' + msg + ']不得含有非法字符。')) { obj.focus(); return false; } return true; } /** * 判断是不是合法字符串. * @param {要进行判断的字符串} szStr * @param {文本描述} errMsg * @return {合法则返回true否则返回false} */ function _isValidString(szStr,errMsg) { voidChar = "'\"><`~!@#$%^&\(\)()!¥……??“”‘’*"; for (var i = 0; i < voidChar.length; i++) { aChar = voidChar.substring(i, i + 1); if (szStr.indexOf(aChar) > -1){ alert(errMsg) return false; } } return true; } /*************** 以下方法和下拉菜单相关*************************************************/ /** * 控制下拉菜单不可以为-1(未选择情况value=-1) * @param {下拉菜单id} selectId * @param {下拉菜单描述内容} msg * @param {下拉菜单的空值对应的value,默认为-1} nullValue * @return {Boolean} */ function checkChooseSelect(selectId, msg ,nullValue) { var obj = $(selectId); if (obj.value == notNull(nullValue,'-1')) { alert('[' + msg + ']必选!'); obj.focus(); return false; } else return true; } /** * 得到下拉菜单的显示的文字. * @param {下拉菜单dom对象} selectObj * @return {返回下拉菜单的显示的"文本"} */ function getSelectText(selectObj) { return selectObj.options[selectObj.selectedIndex].text; } /** * 得到下拉菜单的显示的值. * @param {下拉菜单dom对象} selectObj * @return {得到下拉菜单的显示的"值"} */ function getSelectValue(selectObj) { return selectObj.options[selectObj.selectedIndex].value; } /** * 设置下拉菜单的选择状态到指定的值. * @param {下拉菜单对象} obj * @param {要选择的值} value */ function setSelectValue(obj, value) { /*for (i = obj.options.length - 1; i >= 0; i--) { if (obj.options[i].value == value) { obj.options[i].selected = true; return; } } */ obj.value= value; } /** * 根据键值串的内容进行下拉菜单的动态组装 * @param {要进行下拉菜单组装的dom对象} obj * @param {键值对用,和;分割,例如'1,男;2,女;3,未知'} valAndText */ function setSelectContent(obj,valAndText){ if(trim(valAndText)==''){ alert('没有要进行组装下拉菜单的数据!'); return false; } clearSelect(obj); var keyandvalues = valAndText.split(';'); for(var i=0;i<keyandvalues.length;i++){ var arr = keyandvalues[i].split(','); if(arr){ var value =arr[0]; var text =arr[1]; var objOption = new Option(text,value); obj.add(objOption); } } } /** * 清空下拉菜单里面的内容. * @param {下拉菜单对象} obj */ function clearSelect(obj) { for (var i=obj.options.length; i >0; i--) { obj.remove(0); } } /*************** 以下方法和多选框相关*************************************************/ /** * 返回选中的checks的id组成的字符串,逗号隔开. * @param {checks数组} checks * @return 选择的id组成的字符串 */ function getCheckedIds(checks){ var selectedValue = ''; var len = checks.length; for(var index=0; index<len; index++) { if(checks[index].checked==true) { selectedValue += checks[index].value+","; } } if(selectedValue.length>0) return selectedValue.substring(0,selectedValue.length-1); return selectedValue; }
javascript util.js的更多相关文章
- vue项目工具文件utils.js javascript常用工具类,javascript常用工具类,util.js
vue项目工具文件utils.js :https://blog.csdn.net/Ajaxguan/article/details/79924249 javascript常用工具类,util.js : ...
- util.js
轻量基础库.方法库 用时可直接拷贝 拆卸式使用 适用于mobile端简单页面 适用于PC简单页面 基于node.php等多种构建方法 (function(M){ /** * 初始化Ajax请求 * @ ...
- Javascript : require.js 的使用(例子)
demo 结构: config.js require.config({ baseUrl: 'js/lib', paths: { 'jquery' : 'jquery-1.11.1.min', ...
- [TypeScript] 建置输出单一JavaScript档案(.js)与Declaration档案(.d.ts)
[TypeScript] 建置输出单一JavaScript档案(.js)与Declaration档案(.d.ts) 问题情景 开发人员使用Visual Studio来开发TypeScript,可以很方 ...
- JavaScript之JS实现动画效果
在前面的随笔中介绍了如何用DOM技术修改文档的央样式信息,用JavaScript添加样式信息可以节约我们的时间和精力,但总的来说,CSS仍是完成这类任务的最佳工具.但是有一个应用领域是目前的CSS无能 ...
- 阅读:重新介绍 JavaScript(JS教程)
这篇文章是记录自己阅读重新介绍 JavaScript(JS 教程)的记录和个人体会 在线调试代码工具:https://codepen.io/pen 引言 分歧根源:名字Javascript和Java有 ...
- JavaScript(JS)简介
历史背景介绍 (Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript ...
- 【javascript】js 检验密码强度
最近一直在做通行证项目,里面的注册模块中输入密码需要显示密码强度(低中高).今天就把做的效果给大家分享下,代码没有网上搜索的那么复杂,能够满足一般的需求. html 代码如下: <!DOCTYP ...
- 帮助自定义选择框样式的Javascript - DropKick.js
来源:GBin1.com 在线演示 在线下载 当你想要设计一个页面样式时,没有什么比表单更让人头疼了.而当你设计一个表单的样式时,最让你头疼的就应该非下拉框<select>莫属了. 我们 ...
随机推荐
- Ext.Net系列:一安装与使用
http://www.cnblogs.com/howDo/archive/2011/04/27/2031084.html 下载地址:http://www.ext.net/download/ 示例地址: ...
- ios开发环境 分支语句 、 循环结构(for) 、 循环结构
1 完成命令解析程序 1.1 问题 有命令解析程序,该程序提供三个功能选项供用户选择,用户选择某功能后,程序在界面上输出用户所选择的功能名称.程序的交互效果如图-1所示: 图-1 由上图可以看出,程序 ...
- Core Data入门
简介 Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象. ...
- javascript(脚本语言)
javascript(脚本语言)一.注释语法:1.单行注释 //注释内容2.多行注释 /*注释内容*/二.输出语法js语言格式,尽量靠下写,属双标签<script type=”text/java ...
- ci(转)
1 从代码管理器签出源文件 2 修改代码 3 编译代码 4 遇到错误,转到2继续修改直到达到预期 5 运行单元测试,期望所有的测试绿色(通过) 6 单元测试出错,转入2 7 重构代码,按 ...
- libvirtError: no connection driver available for qemu:///system 解决办法
今天部署了一套K版的OpenStack环境后,启动nova-compute后,日志里狂报如下错误(因为其内部有定时任务需要去连libvirtd进程): 2015-08-14 10:01:00.061 ...
- MySQL安装常见错误及解决方案
错误1:wizard安装最后一页,出现cannot create Windows service for mysql.error:0 错误 解决方法:打开命令行 输入 sc delete mysql ...
- Python4周 入职培训的过程
这是我在过去几家公司招聘到工程师,Python入职培训的过程.时间分为4周,全部自学,仅提供大纲.适用于Web方向:1.Week1:读完<简明Python教程>,适应Python开发环境2 ...
- KVO的简单用法
KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知.简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了 ...
- js刷新当前页面
a href="javascript:window.location.href=location.href"