|
|
/*
|
|
|
根据传入的类型返回正则表达式,如果类型不存在则返回空。
|
|
|
*/
|
|
|
|
|
|
function regex(type)
|
|
|
{
|
|
|
/*验证是否数字 /^[4|1|2|3|5|6|7|8|9]\d+$/; */
|
|
|
if (type == 'int') return /^\d+$/;
|
|
|
/*验证是否是大于0的整数*/
|
|
|
|
|
|
if(type=='sum') return /^[1|2|3|4|5|6|7|8|9]\d{0,10}$/;
|
|
|
|
|
|
/*email校验*/
|
|
|
if (type == 'email') return /^\w+@\w+\.\w+/;
|
|
|
|
|
|
/*15位身份证*/
|
|
|
if (type == 'cert15') return /^\d{15}$/;
|
|
|
|
|
|
/*18位身份证*/
|
|
|
if (type == 'cert18') return /^\d{17}[0-9Xx]{1}$/;
|
|
|
|
|
|
/* 只能输入ASCII字符(非空)*/
|
|
|
if (type == 'ascii') return /^\w+$/;
|
|
|
|
|
|
/* 日期校验 yyyy-mm-dd*/
|
|
|
if (type == 'date(yyyy-mm-dd)') return /^\d{4}-[01]{1}\d{1}-[0123]{1}\d{1}$/;
|
|
|
|
|
|
/* 日期校验 yyyy/mm/dd*/
|
|
|
if (type == 'date(yyyy/mm/dd)') return /^\d{4}\/[01]{1}\d{1}\/[0123]{1}\d{1}$/;
|
|
|
|
|
|
/* 浮点数精度定义*/
|
|
|
if (type == 'float(2)') return /^\d+\.{0,1}\d{0,2}$/;
|
|
|
|
|
|
/* 邮编 */
|
|
|
if (type == 'postcode') return /^\d{6}$/;
|
|
|
|
|
|
/* 移动电话 */
|
|
|
if (type == 'mobphone') return /^[1][3][0|1|2|3|5|6|7|8|9]\d{8}$/;
|
|
|
|
|
|
/* 固定电话 */
|
|
|
if (type == 'phone') return /^[1|2|3|4|5|6|7|8|9]\d{6,7}$/;
|
|
|
|
|
|
/* 电话地区号 */
|
|
|
if (type == 'areacode') return /^[0][1|2|3|4|5|6|7|8|9]\d{1,2}$/;
|
|
|
|
|
|
/* 日期校验 yyyy-mm*/
|
|
|
if (type == 'billingcycl') return /^\d{4}-[01]{1}\d{1}$/;
|
|
|
|
|
|
return '';
|
|
|
}
|
|
|
/*
|
|
|
校验是否输入正确的业务号码
|
|
|
v1 业务号码 v2 网别
|
|
|
*/
|
|
|
function validate(v1,v2){
|
|
|
v2 = v2.trim();
|
|
|
v1 = v1.trim();
|
|
|
var pat = new Array();
|
|
|
pat["A"] = /^[1][3][0|1|2|3]\d{8}$/;
|
|
|
pat["P"] = /^\d+\d{8}$/;
|
|
|
pat["E"] = /^\S+$/;
|
|
|
pat["G"] = /^[1][3][0|1|2]\d{8}$/;
|
|
|
pat["C"] = /^[1][3][3]\d{8}$/;
|
|
|
pat["M"] = /^[1][3][0|1|2|3]\d{8}$/;
|
|
|
|
|
|
var ret = pat[v1].exec(v2);
|
|
|
if(!ret) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
用正则表达式去掉字符串前后的空格
|
|
|
*/
|
|
|
String.prototype.trim = function()
|
|
|
{
|
|
|
return this.replace(/(^\s*)|(\s*$)/g, "");
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
验证证件类型和证件号码是否合法
|
|
|
type: 证件类型
|
|
|
num: 证件号码
|
|
|
*/
|
|
|
function check_certnum(type,num)
|
|
|
{
|
|
|
if(num.value.length == 0) return true;
|
|
|
if(type.value == null || type.value == "")
|
|
|
{
|
|
|
alert("证件类型不能为空");
|
|
|
type.focus();
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
//十五位身份证验证
|
|
|
if(type.value == '10')
|
|
|
{
|
|
|
if (num.value.length != 15){
|
|
|
alert("身份证输入错误必须输入15位有效数字!");
|
|
|
num.value = "";
|
|
|
num.focus();
|
|
|
return false;
|
|
|
}
|
|
|
var thePat=/[0-9]{15}/;
|
|
|
var gotIt = thePat.test(num.value);
|
|
|
if (!gotIt)
|
|
|
{
|
|
|
alert("身份证输入错误");
|
|
|
num.value = "";
|
|
|
num.focus();
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//十八位身份证验证
|
|
|
if(type.value == '11')
|
|
|
{
|
|
|
if (num.value.length != 18){
|
|
|
alert("身份证输入错误必须输入18位有效数字!");
|
|
|
num.value = "";
|
|
|
num.focus();
|
|
|
return false;
|
|
|
}
|
|
|
var thePat=/[0-9]{17}[0-9Xx]{1}/;
|
|
|
var gotIt = thePat.test(num.value);
|
|
|
if (!gotIt)
|
|
|
{
|
|
|
alert("身份证输入错误");
|
|
|
num.value = "";
|
|
|
num.focus();
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
function checkmoney(para,Desc)
|
|
|
{
|
|
|
var pat1 = /^\d+\.\d{2}$/;
|
|
|
var pat2= /^\d+\.\d{1}$/;
|
|
|
var pat3= /^\d+$/;
|
|
|
var ret1 = pat1.test(para.value);
|
|
|
var ret2 = pat2.test(para.value);
|
|
|
var ret3 = pat3.test(para.value);
|
|
|
if (ret1||ret2||ret3) {
|
|
|
return true;
|
|
|
} else {
|
|
|
alert(Desc);
|
|
|
//清空数据
|
|
|
para.value = '';
|
|
|
//设置焦点
|
|
|
para.focus();
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
/*
|
|
|
接收Enter键输入, 使焦点指向对象a下一个可见且没有被disable的对象
|
|
|
a: 页面上的HTML元素名,一般直接写this即可
|
|
|
*/
|
|
|
function keyDown(a)
|
|
|
{
|
|
|
var key=window.event.keyCode;
|
|
|
var form;
|
|
|
form = document.forms[0];
|
|
|
if (key == 13)
|
|
|
{
|
|
|
for (k = 0 ; k < form.length ;k++)
|
|
|
if (form.elements[k] == a)
|
|
|
i = k + 1;
|
|
|
if (i == form.length) return;
|
|
|
while(form.elements[i].disabled == true
|
|
|
|| form.elements[i].type == 'hidden'
|
|
|
|| form.elements[i].type == 'button') {
|
|
|
i++;
|
|
|
if (i == form.length) return;
|
|
|
}
|
|
|
form.elements[i].focus();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
校验用户两次输入的密码是否相同
|
|
|
t1: 密码
|
|
|
t2: 重新输入的密码
|
|
|
*/
|
|
|
|
|
|
function check_pwd(t1,t2) {
|
|
|
var pat = /^\d{6}$/;
|
|
|
if(t1.value=="" && t2.value == "") return true;
|
|
|
var ret = pat.exec(t1.value);
|
|
|
if(!ret) {
|
|
|
alert("密码必须是6位数字!");
|
|
|
t1.value = "";
|
|
|
t2.value = "";
|
|
|
t1.focus();
|
|
|
return false;
|
|
|
}
|
|
|
if(t1.value != t2.value) {
|
|
|
alert("两次输入的密码不同,请重新输入!");
|
|
|
t1.value = "";
|
|
|
t2.value = "";
|
|
|
t1.focus();
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
mask函数实现对于定制类型的HTML元素的校验
|
|
|
参数说明:
|
|
|
1、ElementName : 页面上的HTML元素名,一般直接写this即可
|
|
|
2、Type:要校验的类型,系统预定义了一些类型,可以写,也可以自己定义正则表达式。
|
|
|
3、ErrDesc:错误描述,如果校验不通过显示的提示内容。
|
|
|
函数使用位置:
|
|
|
该函数一般在元素的onblur事件中触发
|
|
|
*/
|
|
|
function mask(ElementName,Type,ErrDesc)
|
|
|
{
|
|
|
//如果该元素没有任何数据,则不需要校验
|
|
|
if (ElementName.value.length == 0) {
|
|
|
return true;
|
|
|
}
|
|
|
//如果类型没有指定则不做任何限制
|
|
|
if (Type.length == 0) return true;
|
|
|
|
|
|
var pat = regex(Type);
|
|
|
if (pat == '') {
|
|
|
pat = Type;
|
|
|
}
|
|
|
|
|
|
var ret = pat.test(ElementName.value);
|
|
|
if (ret) {
|
|
|
return true;
|
|
|
} else {
|
|
|
//显示错误描述
|
|
|
if (ErrDesc == null || ErrDesc == "") {
|
|
|
alert("该值不合法!");
|
|
|
} else {
|
|
|
alert(ErrDesc);
|
|
|
}
|
|
|
//清空数据
|
|
|
ElementName.value = '';
|
|
|
//设置焦点
|
|
|
ElementName.focus();
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
非空校验的函数
|
|
|
|
|
|
*/
|
|
|
|
|
|
function IsNull(FormName)
|
|
|
{
|
|
|
var form;
|
|
|
if (FormName == "" || FormName == null){
|
|
|
form = document.forms[0];
|
|
|
}else{
|
|
|
form = FormName;
|
|
|
}
|
|
|
//遍历form元素
|
|
|
for (i = 0 ; i < form.length ;i++){
|
|
|
if (form.elements[i].NullCheck == '1' && form.elements[i].value == '' && form.elements[i].disabled == false){
|
|
|
if (form.elements[i].ErrDesc == null || form.elements[i].ErrDesc == ''){
|
|
|
alert("该值不能为空!!");
|
|
|
}else{
|
|
|
alert(form.elements[i].ErrDesc);
|
|
|
}
|
|
|
form.elements[i].focus();
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
/*
|
|
|
用来建立临时数组的对象
|
|
|
*/
|
|
|
function OBJECT_TEMP(a,b,c){
|
|
|
this.myArray = a;
|
|
|
this.col = b;
|
|
|
this.id = c;
|
|
|
}
|
|
|
/*
|
|
|
根据传入的对象的名称、过滤的列的名称、以及列的值返回一个过滤后的对象
|
|
|
Obj是数据对象,(不是字符串,请不要用引号或者双引号),如果只知道名称可以通过调用getobjectbyname('对象名称')来获取
|
|
|
*/
|
|
|
function getvalue(Obj,ColName,ColVal)
|
|
|
{
|
|
|
var a = new Array();
|
|
|
var b = new Array();
|
|
|
|
|
|
var irow = 0;
|
|
|
var flag = 0;
|
|
|
|
|
|
//创建列数组
|
|
|
for (var i=0;i<Obj.col.length;i++) {
|
|
|
a[i] = new Array();
|
|
|
}
|
|
|
|
|
|
for (var i=0;i<Obj.col.length;i++) {
|
|
|
if (Obj.col[i] == ColName.toUpperCase()) {
|
|
|
flag++;
|
|
|
|
|
|
for (var j=0;j<Obj.myArray[i].length;j++) {
|
|
|
if (Obj.myArray[i][j] == ColVal) {
|
|
|
b[irow] = Obj.id[j];
|
|
|
for (var k = 0;k<Obj.col.length;k++) {
|
|
|
a[k][irow] = Obj.myArray[k][j];
|
|
|
}
|
|
|
irow++;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
} else {
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (flag == 0) {
|
|
|
alert("列名" + ColName + "不存在!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
var temp = new OBJECT_TEMP(a,Obj.col,b);
|
|
|
return temp;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*
|
|
|
根据对象来生成下拉列表框中的数据
|
|
|
type的取值:
|
|
|
rewrite (把下拉框中的所有数据清理,然后加数据) (默认值)
|
|
|
append (如果有重复的自动过滤)
|
|
|
|
|
|
Obj是数据对象,(不是字符串,请不要用引号或者双引号),如果只知道名称可以通过调用getobjectbyname('对象名称')来获取
|
|
|
listname是下拉列表框的名称(不是字符串,请不要用引号或者双引号)
|
|
|
|
|
|
*/
|
|
|
function filldata(Obj,listname,datacolumn,displaycolumn,type)
|
|
|
{
|
|
|
//查找数据列和显示列是否存在
|
|
|
var idata = 0,idispaly = 0,flag1 = false,flag2 = false;
|
|
|
for (var i=0;i<Obj.col.length;i++) {
|
|
|
if (Obj.col[i] == datacolumn.toUpperCase()) {
|
|
|
idata = i;
|
|
|
flag1 = true;
|
|
|
}
|
|
|
|
|
|
if (Obj.col[i] == displaycolumn.toUpperCase()) {
|
|
|
idisplay = i;
|
|
|
flag2 = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (flag1 == false) {
|
|
|
alert("数据列" + datacolumn + "不存在");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (flag2 == false) {
|
|
|
alert("显示列" + displaycolumn + "不存在");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
//判断是否是追加类型
|
|
|
if (type==null || type=="" || type.toUpperCase()!="APPEND") {
|
|
|
//清空下拉列表框中的所有数据
|
|
|
deldata(listname);
|
|
|
}
|
|
|
|
|
|
var j = 0;
|
|
|
var len = 0;
|
|
|
var flag;
|
|
|
|
|
|
|
|
|
//从对象中取数据,并填写到下拉列表中
|
|
|
for (var i=0;i<Obj.id.length;i++) {
|
|
|
flag = false;
|
|
|
len = listname.length;
|
|
|
for (j=0;j<len;j++) {
|
|
|
if (listname.options[j].id == Obj.id[i]) {
|
|
|
flag = true;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//如果在下拉列表中没有找到,则添加,否则继续
|
|
|
if (flag == false) {
|
|
|
listname.length = len + 1;
|
|
|
listname.options[len].value = Obj.myArray[idata][i];
|
|
|
listname.options[len].text = Obj.myArray[idisplay][i];
|
|
|
listname.options[len].id = Obj.id[i];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*
|
|
|
根据下拉框来和对应的数据对象来生成一个新的对象,下拉列表框中有几条数据,将生成几条数据
|
|
|
listname是下拉列表框的名称(不是字符串,请不要用引号或者双引号)
|
|
|
*/
|
|
|
function createobj(listname)
|
|
|
{
|
|
|
if (listname.name == null || listname.name == "") {
|
|
|
alert("请为列表框指定名称(name属性)!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (listname.datacolumn == null || listname.datacolumn == "") {
|
|
|
alert("请为列表框指定数据列(datacolumn属性)!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (listname.displaycolumn == null || listname.displaycolumn == "") {
|
|
|
alert("请为列表框指定显示列(displaycolumn属性)!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
var rtn = eval((listname.name + "_OBJECT").toUpperCase());
|
|
|
var tt = new rtn;
|
|
|
var a = new Array();
|
|
|
var b = new Array();
|
|
|
var id = 0;
|
|
|
var irow = 0;
|
|
|
var count = 0;
|
|
|
|
|
|
//创建列数组
|
|
|
for (var i=0;i<tt.col.length;i++) {
|
|
|
a[i] = new Array();
|
|
|
}
|
|
|
|
|
|
//从下拉框中查找ID,然后根据ID到数组中提取数据
|
|
|
for (var list=0;list<listname.options.length;list++) {
|
|
|
id = listname.options[list].id;
|
|
|
if (id == "" || id == null) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
var flag = false;
|
|
|
|
|
|
//根据ID查找记录号
|
|
|
for (var i=0;i<tt.id.length;i++) {
|
|
|
if (tt.id[i] == id) {
|
|
|
irow = i;
|
|
|
flag = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//如果没有找到该id,则忽略
|
|
|
if (flag == false) continue;
|
|
|
|
|
|
b[count] = id;
|
|
|
|
|
|
for (var i=0;i<tt.col.length;i++) {
|
|
|
a[i][count] = tt.myArray[i][irow];
|
|
|
}
|
|
|
|
|
|
count++;
|
|
|
}
|
|
|
|
|
|
var temp = new OBJECT_TEMP(a,tt.col,b);
|
|
|
return temp;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*
|
|
|
根据下拉列表框中被选择的数据(可能是多选的情况)生成一个新的数据对象
|
|
|
listname是下拉列表框的名称(不是字符串,请不要用引号或者双引号)
|
|
|
*/
|
|
|
|
|
|
|
|
|
function createobjbysel(listname)
|
|
|
{
|
|
|
if (listname.name == null || listname.name == "") {
|
|
|
alert("请为列表框指定名称(name属性)!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (listname.datacolumn == null || listname.datacolumn == "") {
|
|
|
alert("请为列表框指定数据列(datacolumn属性)!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (listname.displaycolumn == null || listname.displaycolumn == "") {
|
|
|
alert("请为列表框指定显示列(displaycolumn属性)!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
var rtn = eval((listname.name + "_OBJECT").toUpperCase());
|
|
|
var tt = new rtn;
|
|
|
var a = new Array();
|
|
|
var b = new Array();
|
|
|
var id = 0;
|
|
|
var irow = 0;
|
|
|
var count = 0;
|
|
|
|
|
|
//创建列数组
|
|
|
for (var i=0;i<tt.col.length;i++) {
|
|
|
a[i] = new Array();
|
|
|
}
|
|
|
|
|
|
//从下拉框中查找ID,然后根据ID到数组中提取数据
|
|
|
for (var list=0;list<listname.options.length;list++) {
|
|
|
if (listname.options[list].selected == true) {
|
|
|
id = listname.options[list].id;
|
|
|
if (id == "" || id == null) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
var flag = false;
|
|
|
|
|
|
//根据ID查找记录号
|
|
|
for (var i=0;i<tt.id.length;i++) {
|
|
|
if (tt.id[i] == id) {
|
|
|
irow = i;
|
|
|
flag = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//如果没有找到该id,则忽略
|
|
|
if (flag == false) continue;
|
|
|
|
|
|
b[count] = id;
|
|
|
|
|
|
for (var i=0;i<tt.col.length;i++) {
|
|
|
a[i][count] = tt.myArray[i][irow];
|
|
|
}
|
|
|
|
|
|
count++;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var temp = new OBJECT_TEMP(a,tt.col,b);
|
|
|
return temp;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
根据数据对象和列名获取列的序号。
|
|
|
*/
|
|
|
|
|
|
function getcol(obj,colname)
|
|
|
{
|
|
|
for (var i=0;i<obj.col.length;i++) {
|
|
|
if (obj.col[i] == colname.toUpperCase()) {
|
|
|
return i;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
alert("列" + colname + "不存在!");
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*
|
|
|
根据ID从数据对象中查询对应的记录数
|
|
|
*/
|
|
|
|
|
|
function getrow(obj,idvalue)
|
|
|
{
|
|
|
if (idvalue == null || idvalue == "") {
|
|
|
alert("不存在该行!");
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
for (var i=0;i<obj.id.length;i++) {
|
|
|
if (obj.id[i] == idvalue) {
|
|
|
return i;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
alert("不存在该行!");
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
|
|
|
//返回列表框中被选择的ID
|
|
|
function getid(listname)
|
|
|
{
|
|
|
for (var i=0;i<listname.options.length;i++) {
|
|
|
if (listname.options[i].selected == true) {
|
|
|
return listname.options[i].id;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
根据数据对象、ID的值和列名获取数据。
|
|
|
*/
|
|
|
function getvaluebyid(obj,idvalue,colname)
|
|
|
{
|
|
|
var row = getrow(obj,idvalue);
|
|
|
if (row == -1) return false;
|
|
|
|
|
|
var col = getcol(obj,colname);
|
|
|
if (col == -1) return false;
|
|
|
|
|
|
return obj.myArray[col][row];
|
|
|
}
|
|
|
|
|
|
|
|
|
//删除下拉列表中的数据
|
|
|
function deldata(listname)
|
|
|
{
|
|
|
//清空下拉列表框中的所有数据
|
|
|
for (var i = listname.options.length-1 ; i >= 0 ; i--) {
|
|
|
listname.options[i] = null;
|
|
|
}
|
|
|
listname.length = 0;
|
|
|
}
|
|
|
//根据列表框来获取该列表框的所对应的数据对象,针对下拉框和数据对象绑定的情况
|
|
|
function getobject(listname)
|
|
|
{
|
|
|
if (listname.name == null || listname.name == "") {
|
|
|
alert("请为列表框指定名称(name属性)!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (listname.datacolumn == null || listname.datacolumn == "") {
|
|
|
alert("请为列表框指定数据列(datacolumn属性)!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (listname.displaycolumn == null || listname.displaycolumn == "") {
|
|
|
alert("请为列表框指定显示列(displaycolumn属性)!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
try{
|
|
|
var rtn = eval((listname.name + "_OBJECT").toUpperCase());
|
|
|
var tt = new rtn;
|
|
|
return tt;
|
|
|
}catch(e)
|
|
|
{
|
|
|
alert("该列表框没有和数据对象绑定或绑定错误,请检查!");
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/*
|
|
|
1、这个主要是在创建的不和下拉框绑定的数据对象的时候,要访问这些对象可以使用该方法
|
|
|
根据数据对象的名称来获取数据对象
|
|
|
2、如果知道数据对象的名称,也可以通过该方法来得到对应的数据对象
|
|
|
*/
|
|
|
function getobjectbyname(dataname)
|
|
|
{
|
|
|
if (dataname == null || dataname == "") {
|
|
|
alert("数据对象的名称不能为空!");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
try{
|
|
|
var rtn = eval((dataname + "_OBJECT").toUpperCase());
|
|
|
var tt = new rtn;
|
|
|
return tt;
|
|
|
}catch(e)
|
|
|
{
|
|
|
alert("对不起,您要访问的数据对象不存在!");
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
根据当前选中的数值过滤另外一个下拉框
|
|
|
|
|
|
curlistname当前选择的列表名
|
|
|
curfiltercol用来作为过滤值的列名
|
|
|
listname:被过滤的列表的名称
|
|
|
filtercolumn:过滤列
|
|
|
datacol:数据列
|
|
|
display:显示列
|
|
|
*/
|
|
|
|
|
|
function filterlist(curlistname,curfiltercol,listname,filtercolumn,datacol,display)
|
|
|
{
|
|
|
|
|
|
//根据当前下拉列表创建对象
|
|
|
var cur = getobject(curlistname);
|
|
|
if (cur == false) return false;
|
|
|
|
|
|
//获取选中行的ID
|
|
|
var id = getid(curlistname);
|
|
|
if (id == -1) return false;
|
|
|
|
|
|
//如果ID为空,则清空被过滤的列表的数据
|
|
|
if (id == null || id == "") {
|
|
|
deldata(listname);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
//获取数据
|
|
|
var data = getvaluebyid(cur,id,curfiltercol);
|
|
|
if (data == false) return false;
|
|
|
|
|
|
var obj = getobject(listname);
|
|
|
if (obj == false) return false;
|
|
|
|
|
|
//根据条件查询满足条件的数据
|
|
|
var rtn = getvalue(obj,filtercolumn,data);
|
|
|
if (rtn == false) return false;
|
|
|
//填写数据到下拉列表中
|
|
|
var tt = filldata(rtn,listname,datacol,display);
|
|
|
if (tt == false) return false;
|
|
|
}
|
|
|
|
|
|
//根据指定列、以及指定的列的值来过滤下拉列表
|
|
|
function filterbycol(colname,colvalue,listname,datacol,display)
|
|
|
{
|
|
|
|
|
|
//查找列表框对象
|
|
|
var obj = getobject(listname);
|
|
|
if (obj == false) return false;
|
|
|
//根据条件查询满足条件的数据
|
|
|
var rtn = getvalue(obj,colname,colvalue);
|
|
|
if (rtn == false) return false;
|
|
|
//填写数据到下拉列表中
|
|
|
var tt = filldata(rtn,listname,datacol,display);
|
|
|
if (tt == false) return false;
|
|
|
}
|
|
|
|
|
|
//根据指定列、以及指定的列的值来过滤下拉列表
|
|
|
function filldatafilter(colname,colvalue,listname,obj,datacol,display)
|
|
|
{
|
|
|
//根据条件查询满足条件的数据
|
|
|
var rtn = getvalue(obj,colname,colvalue);
|
|
|
if (rtn == false) return false;
|
|
|
//填写数据到下拉列表中
|
|
|
var tt = filldata(rtn,listname,datacol,display);
|
|
|
if (tt == false) return false;
|
|
|
}
|
|
|
|
|
|
function _selectAll(obj,self) {
|
|
|
if (obj) {
|
|
|
if (obj.length) {
|
|
|
for (var i=0; i<obj.length; i++) {
|
|
|
obj[i].checked=self.checked;
|
|
|
}
|
|
|
} else {
|
|
|
obj.checked=self.checked;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function parseExcel(obj){
|
|
|
var exceldata = obj.innerHTML;
|
|
|
document.all.exceldata.value=exceldata;
|
|
|
document.forms[0].action="/servlet/ParseExcel";
|
|
|
document.forms[0].target="_blank";
|
|
|
document.forms[0].submit();
|
|
|
}
|
|
|
|
|
|
// Function Name: trim
|
|
|
// Function Description: 去除字符串的首尾的空格
|
|
|
// Creation Date: 2004-7-13 15:30
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.trim=function(){
|
|
|
return this.replace(/(^\s*)|(\s*$)/g, "");
|
|
|
}
|
|
|
|
|
|
// Function Name: ltrim
|
|
|
// Function Description: 去除字符串的左侧的空格
|
|
|
// Creation Date: 2004-7-13 9:58
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.ltrim=function()
|
|
|
{
|
|
|
return this.replace(/(^\s*)/g, "");
|
|
|
}
|
|
|
|
|
|
// Function Name: rtrim
|
|
|
// Function Description: 去除字符串的右侧的空格
|
|
|
// Creation Date: 2004-7-13 15:31
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.rtrim=function()
|
|
|
{
|
|
|
return this.replace(/(\s*$)/g, "");
|
|
|
}
|
|
|
|
|
|
// Function Name: len
|
|
|
// Function Description: 返回字符串的实际长度, 一个汉字算2个长度
|
|
|
// Creation Date: 2004-7-13 9:58
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.len=function()
|
|
|
{
|
|
|
var str=this;
|
|
|
return str.replace(/[^\x00-\xff]/g, "**").length
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidDate
|
|
|
// Function Description: 判断输入是否是有效的短日期格式 - "YYYY-MM-DD"
|
|
|
// Creation Date: 2004-7-13 9:58
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidDate=function()
|
|
|
{
|
|
|
var result=this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
|
|
|
if(result==null) return false;
|
|
|
var d=new Date(result[1], result[3]-1, result[4]);
|
|
|
return (d.getFullYear()==result[1]&&d.getMonth()+1==result[3]&&d.getDate()==result[4]);
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidTime
|
|
|
// Function Description: 判断输入是否是有效的时间格式 - "HH:MM:SS"
|
|
|
// Creation Date: 2004-7-13 9:58
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidTime=function()
|
|
|
{
|
|
|
var resule=this.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
|
|
|
if (result==null) return false;
|
|
|
if (result[1]>24 || result[3]>60 || result[4]>60) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidEmail
|
|
|
// Function Description: 判断输入是否是有效的电子邮件
|
|
|
// Creation Date: 2004-7-13 9:59
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidEmail=function()
|
|
|
{
|
|
|
var result=this.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
|
|
|
if(result==null) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidDatetime
|
|
|
// Function Description: 判断输入是否是有效的长日期格式 - "YYYY-MM-DD HH:MM:SS"
|
|
|
// Creation Date: 2004-7-13 9:59
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidDatetime=function()
|
|
|
{
|
|
|
var result=this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
|
|
|
if(result==null) return false;
|
|
|
var d= new Date(result[1], result[3]-1, result[4], result[5], result[6], result[7]);
|
|
|
return (d.getFullYear()==result[1]&&(d.getMonth()+1)==result[3]&&d.getDate()==result[4]&&d.getHours()==result[5]&&d.getMinutes()==result[6]&&d.getSeconds()==result[7]);
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidInteger
|
|
|
// Function Description: 判断输入是否是一个整数
|
|
|
// Creation Date: 2004-7-13 10:01
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidInteger=function()
|
|
|
{
|
|
|
var result=this.match(/^(-|\+)?\d+$/);
|
|
|
if(result==null) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidPositiveInteger
|
|
|
// Function Description: 判断输入是否是一个正整数
|
|
|
// Creation Date: 2004-7-13 10:01
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidPositiveInteger=function()
|
|
|
{
|
|
|
var result=this.match(/^\d+$/);
|
|
|
if(result==null) return false;
|
|
|
if(parseInt(this)>0) return true;
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidNegativeInteger
|
|
|
// Function Description: 判断输入是否是一个负整数
|
|
|
// Creation Date: 2004-7-13 10:28
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidNegativeInteger=function()
|
|
|
{
|
|
|
var result=this.match(/^-\d+$/);
|
|
|
if(result==null) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidNumber
|
|
|
// Function Description: 判断输入是否是一个数字
|
|
|
// Creation Date: 2004-7-13 10:01
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidNumber=function()
|
|
|
{
|
|
|
return !isNaN(this);
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidLetters
|
|
|
// Function Description: 判断输入是否是一个由 A-Z / a-z 组成的字符串
|
|
|
// Creation Date: 2004-7-13 10:10
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidLetters=function()
|
|
|
{
|
|
|
var result=this.match(/^[a-zA-Z]+$/);
|
|
|
if(result==null) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidDigits
|
|
|
// Function Description: 判断输入是否是一个由 0-9 组成的数字
|
|
|
// Creation Date: 2004-7-13 10:10
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidDigits=function()
|
|
|
{
|
|
|
var result=this.match(/^[1-9][0-9]+$/);
|
|
|
if(result==null) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidAlphanumeric
|
|
|
// Function Description: 判断输入是否是一个由 0-9 / A-Z / a-z 组成的字符串
|
|
|
// Creation Date: 2004-7-13 10:14
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidAlphanumeric=function()
|
|
|
{
|
|
|
var result=this.match(/^[a-zA-Z0-9]+$/);
|
|
|
if(result==null) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidString
|
|
|
// Function Description: 判断输入是否是一个由 0-9 / A-Z / a-z / . / _ 组成的字符串
|
|
|
// Creation Date: 2004-7-13 10:20
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidString=function()
|
|
|
{
|
|
|
var result=this.match(/^[a-zA-Z0-9\s.\-_]+$/);
|
|
|
if(result==null) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidPostalcode
|
|
|
// Function Description: 判断输入是否是一个有效的邮政编码
|
|
|
// Creation Date: 2004-7-13 10:22
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidPostalcode=function()
|
|
|
{
|
|
|
var result=this.match(/(^[0-9]{6}$)/);
|
|
|
if(result==null) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidPhoneNo
|
|
|
// Function Description: 判断输入是否是一个有效的电话号码
|
|
|
// Creation Date: 2004-7-13 10:22
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidPhoneNo=function()
|
|
|
{
|
|
|
var result=this.match(/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)/);
|
|
|
if(result==null) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// Function Name: isValidMobileNo
|
|
|
// Function Description: 判断输入是否是一个有效的手机号码
|
|
|
// Creation Date: 2004-7-13 10:23
|
|
|
// Last Modify By: N/A
|
|
|
// Last Modify Date: N/A
|
|
|
String.prototype.isValidMobileNo=function()
|
|
|
{
|
|
|
var result=this.match(/(^0{0,1}13[0-9]{9}$)/);
|
|
|
if(result==null) return false;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
function checkLength(obj, length) {
|
|
|
if (obj.value.len()>length) {
|
|
|
alert("您输入的字符超长!");
|
|
|
obj.focus();
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
function notSelected(id) {
|
|
|
var count=0;
|
|
|
var obj = document.all[id];
|
|
|
if (obj) {
|
|
|
if (obj.length) {
|
|
|
for (var i=0; i<obj.length; i++) {
|
|
|
if (obj[i].checked==true) {
|
|
|
count++;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
if (obj.checked==true) {
|
|
|
count++;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (count==0) {
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
} |