checkform
<!-- ---------------------------------------------------------------------
//
// File: form.htc
// version: 1.0
// Description:客戶端表單驗證.
// author: 伍子
// ModifyBy: Arsene
//
//-------------------------------------------------------------------- -->
/**
表單定義:
<form name="form1" action="" style="behavior:url('form.htc')"></form>
客戶端表單驗證是由表單的onSubmit事件觸發(fā),由于表單的onSubmit事件只能由提交按鈕觸發(fā),
所以如果要用函數(shù)提交表單form1.submit(),則必須同時執(zhí)行form1.onSubmit()。
類型定義:
一、整型(int)
定義:
valueType="int"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
minInput 最小值(數(shù)字)
maxInput 最大值(數(shù)字)
舉例:
<input type="text" name="test" valueType="int" objName="總載重噸" mustInput="true" maxInput="10000">
二、浮點型(float)
定義:
valueType="float"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
minInput 最小值(數(shù)字)
maxInput 最大值(數(shù)字)
decimalLen小數(shù)位數(shù)(數(shù)字)
舉例:
<input type="text" name="test" valueType="float" objName="運價" mustInput="true" maxInput="10000.50" decimalLen="2">
三、字符串(string)
定義:
valueType="string"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
stringLen 字符串長度(數(shù)字)
舉例:
<input type="text" name="test" valueType="string" objName="英文船名" mustInput="true" stringLen="100">
十、字符型(char)
定義:
valueType="char"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
charsLen 字符串長度(數(shù)字)
舉例:
<input type="text" name="test" valueType="char" objName="愛好" mustInput="true" charsLen="5">
四、日期(date)
定義:
valueType="date"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
舉例:
<input type="text" name="test" valueType="date" objName="開始日期" mustInput="true" before="ddd,ccc,sss" after="aa">
備注:
日期現(xiàn)在只能校驗的格式為(yyyy-mm-dd)
五、郵箱(email)
定義:
valueType="email"
屬性:
objName 對象名稱(字符串)
mustInput 必輸項(true/false)
舉例:
<input type="text" name="test" valueType="email" objName="郵箱" mustInput="true">
六、單選(radio)
定義:
valueType="radio"
屬性:
objName 對象名稱(字符串)
mustSelect 必輸項(true/false)
舉例:
<input type="radio" name="test" valueType="radio" objName="租船方式" mustSelect="true">
備注:
對于同一組單選按鈕,只需要定義第一個即可。
七、復選(checkbox)
定義:
valueType="checkbox"
屬性:
objName 對象名稱(字符串)
minSelect 最小選擇數(shù)(數(shù)字)
maxSelect 最大選擇數(shù)(數(shù)字)
舉例:
<input type="checkbox" name="test" valueType="checkbox" objName="愛好" minSelect="2" maxSelect="5">
備注:
對于同一組復選按鈕,只需要定義第一個即可。
八、下拉列表框(select)
定義:
valueType="select"
屬性:
objName 對象名稱(字符串)
mustSelect 必輸項(true/false)
舉例:
<select name="test" valueType="select" objName="租船方式" mustSelect="true">
九、列表框(list)
定義:
valueType="list"
屬性:
objName 對象名稱(字符串)
minSelect 最小選擇數(shù)(數(shù)字)
maxSelect 最大選擇數(shù)(數(shù)字)
舉例:
<select name="test" valueType="list" objName="愛好" minSelect="2" maxSelect="5">
**/
var es; //錯誤個數(shù)
var msg; //錯誤消息
function addMsg(obj, msg, type) {
if (type=="radio" || type=="checkbox") {
var warning = document.getElementById("warning");
if (msg != "") {
es = es + 1;
warning.parentNode.parentNode.style.display = '';
//var alarm = document.createElement("<img name=alarm src=./img/alarm.gif hspace=8 height=16 width=16>")
//var warningMsg = document.createElement("<span style='color: #FF0000;font-weight: bold;'>"+msg+"</span>")
if (!warning.hasChildNodes()) {
warning.innerHTML = "<img name=alarm src=./img/alarm.gif hspace=8 height=16 width=16>" +
"<span style='color: #FF0000;font-weight: bold;'>"+msg+"</span>";
}
//insertAfter(obj.parentNode, alarm, obj);
} else {
warning.parentNode.parentNode.style.display = 'none';
//if (hasAlarm(obj)) obj.parentNode.removeChild(obj.nextSibling);
if (warning.hasChildNodes()) {
warning.innerHTML = "";
}
}
} else {
if (msg != "") {
//alert(obj.name);
//alert(obj.parentNode.title);
es = es + 1;
obj.parentNode.title = msg;
var alarm = document.createElement("<img name=alarm src=./img/alarm.gif hspace=8 height=16 width=16>")
if (!(hasAlarm(obj))) insertAfter(obj.parentNode, alarm, obj);
//alert(es);
} else {
//alert(obj.name);
obj.parentNode.title = "";
//alert(obj.parentNode.title);
if (hasAlarm(obj)) obj.parentNode.removeChild(obj.nextSibling);
}
}
}
function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}
function prependChild(parent, node) {
parent.insertBefore(node, parent.firstChild);
}
//判斷obj下一個節(jié)點nodeName是否為IMG,而且name為alarm
function hasAlarm(obj) {
var x = obj.nextSibling;
if (x != null) {
if (x.nodeName == "IMG" && x.name == "alarm") {
return true;
} else {
return false;
}
} else {
return false;
}
}
//判斷msg是否為空,如果不為空,則添加 and
function formcheck_delNull(message) {
var s = message;
if (s != "") {
s = s + "\n";
}
return s;
}
function checkForm(thisform)
{
es = 0; //初始化錯誤個數(shù)
//var oForm=event.srcElement;
var oForm=thisform;
var eles = oForm.elements;
//遍歷所有表元素
for(var i=0;i<eles.length;i++)
{
msg = ""; //清空msg
//是否需要驗證
var sType=eles[i].valueType;
if(sType)
{
if(eles[i].mustInput!=null && eles[i].mustInput)
{
if(trim(eles[i].value)=="")
{
if(eles[i].objName!=null)
{
//alert(eles[i].objName+"不可以為空");
//addMsg(eles[i], eles[i].objName+"不可以為空");
msg = formcheck_delNull(msg) + eles[i].objName+"不可以為空";
}
else
{
//alert("該文本框為必輸字段");
//addMsg(eles[i], "該文本框為必輸字段");
msg = formcheck_delNull(msg) + "該文本框為必輸字段";
}
} else {
//delMsg(eles[i]);
//alert(es);
}
}
switch(sType)
{
//整數(shù)
case "int":
checkInt(eles[i]);
break;
//小數(shù)
case "float":
checkFloat(eles[i]);
break;
//字符串
case "string":
checkString(eles[i]);
break;
//字符型
case "char":
checkChar(eles[i]);
break;
//年份
case "year":
checkYear(eles[i]);
break;
//日期
case "date":
checkDate(eles[i]);
break;
//郵件
case "email":
checkEmail(eles[i]);
break;
//單選按鈕
case "radio":
checkRadio(eles[i]);
break;
//復選按鈕
case "checkbox":
checkBox(eles[i]);
break;
//下拉列表框
case "select":
checkSelect(eles[i]);
break;
//列表框
case "list":
checkList(eles[i]);
break;
}
} else {
//非需要校驗類型,則不進行error的檢查
continue;
}
addMsg(eles[i], msg, sType);
}
//身份證相關校驗
var sfz = oForm.sfz;
var csrq= oForm.csrq;
var sex = oForm.sex;
//var sfzmsg;
/*if(sfz==null||csrq==null||sex==null){
if (es > 0) {
event.returnValue=false;
return false;
} else {
event.returnValue=true;
return true;
}
}*/
if (sfz!=null && csrq!=null && sex!=null) {
if(sfz.value.length>0) {
if(sfz.value.length>0&&csrq.value.length>0&&sex.value.length>0){
/*if(!CheckIdCard(sfz.value,sex.value,strrq10to8(csrq.value))){
addMsg(sfz, msg, "char");
} else {
addMsg(sfz, msg,)
}*/
CheckIdCard(sfz.value,sex.value,strrq10to8(csrq.value));
addMsg(sfz, msg, "char");
} else {
var sfzmsg = "由于以下原因,身份證驗證失?。?;
if (sfz.value.length <=0) {
msg = formcheck_delNull(msg) + "身份證號碼不能為空";
}
if (csrq.value.length <=0) {
msg = formcheck_delNull(msg) + "出生日期不能為空";
}
if (sex.value.length <=0) {
msg = formcheck_delNull(msg) + "性別不能為空";
}
addMsg(sfz, sfzmsg+msg, "char");
}
}
}
/*if (sfz.value.length<=0) {
sfzmsg = "身份證驗證失敗,身份證號碼不能為空";
addMsg(sfz, sfzmsg, "char");
} else if (csrq.value.length<=0) {
sfzmsg = formcheck_delNull(sfzmsg) + "身份證驗證失敗,出生日期不能為空";
addMsg(sfz, sfzmsg, "char");
} else if (sex.value.length<=0) {
sfzmsg = formcheck_delNull(sfzmsg) + "身份證驗證失敗,性別不能為空";
addMsg(sfz, sfzmsg, "char");
if (es > 0) {
event.returnValue=false;
return false;
} else {
event.returnValue=true;
return true;
}
} else {
if(!CheckIdCard(sfz.value,sex.value,strrq10to8(csrq.value))){
addMsg(sfz, msg, "char");
if (es > 0) {
event.returnValue=false;
return false;
} else {
event.returnValue=true;
return true;
}
}
}*/
//alert(es);
if (es > 0) {
event.returnValue=false;
alert("請檢查數(shù)據(jù)錄入是否正確、完整。\n(欲知詳情請點擊紅色叉叉處。)");
return false;
} else {
event.returnValue=true;
return true;
}
}
/***檢查是否為整數(shù)***/
function checkInt(ele)
{
if(!isInt(ele.value))
{
//alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應為整數(shù)");
//addMsg(ele, "您輸入的"+ convertNullToSpace(ele.objName)+"值應為整數(shù)");
//msg = msg + "您輸入的"+ convertNullToSpace(ele.objName)+"值應為整數(shù)";
msg = formcheck_delNull(msg) + "您輸入的"+ convertNullToSpace(ele.objName)+"值應為整數(shù)";
}
else
{
//delMsg(ele);
if(ele.maxInput!=null && !isNaN(ele.maxInput))
if(parseInt(ele.maxInput)<parseInt(ele.value))
{
//alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput);
//addMsg(ele, "您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput);
//msg = msg + "您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput;
msg = formcheck_delNull(msg) + "您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput;
}
if(ele.minInput!=null && !isNaN(ele.minInput))
if(parseInt(ele.minInput)>parseInt(ele.value))
{
//alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput);
//addMsg(ele, "您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput);
//msg = msg + "您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput;
msg = formcheck_delNull(msg) + "您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput;
}
}
}
/***檢查是否為小數(shù)***/
function checkFloat(ele)
{
if(isNaN(ele.value))
{
//alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應為整數(shù)或小數(shù)");
//addMsg(ele, "您輸入的"+ convertNullToSpace(ele.objName)+"值應為整數(shù)或小數(shù)");
//msg = msg + "您輸入的"+ convertNullToSpace(ele.objName)+"值應為整數(shù)或小數(shù)";
msg = formcheck_delNull(msg) + "您輸入的"+ convertNullToSpace(ele.objName)+"值應為整數(shù)或小數(shù)";
}
else
{
if(ele.decimalLen!=null && !checkDecimal(ele.value,ele.decimalLen))
{
//alert("您輸入的"+convertNullToSpace(ele.objName)+"值小數(shù)位最多為"+ele.decimalLen);
//addMsg(ele, "您輸入的"+convertNullToSpace(ele.objName)+"值小數(shù)位最多為"+ele.decimalLen);
//msg = msg + "您輸入的"+convertNullToSpace(ele.objName)+"值小數(shù)位最多為"+ele.decimalLen;
msg = formcheck_delNull(msg) + "您輸入的"+convertNullToSpace(ele.objName)+"值小數(shù)位最多為"+ele.decimalLen;
}
if(ele.maxInput!=null && !isNaN(ele.maxInput))
if(parseInt(ele.maxInput)<parseInt(ele.value))
{
//alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput);
//addMsg(ele, "您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput);
//msg = msg + "您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput;
msg = formcheck_delNull(msg) + "您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput;
}
if(ele.minInput!=null && !isNaN(ele.minInput))
if(parseInt(ele.minInput)>parseInt(ele.value))
{
//alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput);
//add(msg, "您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput);
//msg = msg + "您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput;
msg = formcheck_delNull(msg) + "您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput;
}
}
}
/***檢查是否為字符串***/
function checkString(ele)
{
if(ele.stringLen!=null && !isNaN(ele.stringLen))
{
var value=new String(ele.value);
if(value.length>parseInt(ele.stringLen))
{
//alert("您輸入的"+convertNullToSpace(ele.objName)+"最大長度為"+ele.stringLen);
//addMsg(ele, "您輸入的"+convertNullToSpace(ele.objName)+"最大長度為"+ele.stringLen);
//msg = msg + "您輸入的"+convertNullToSpace(ele.objName)+"最大長度為"+ele.stringLen;
msg = formcheck_delNull(msg) + "您輸入的"+convertNullToSpace(ele.objName)+"最大長度為"+ele.stringLen;
}
}
}
/***檢查是否為字符型***/
function checkChar(ele)
{
if(ele.charLen!=null && !isNaN(ele.charLen))
{
var value=new String(ele.value);
if(value.length>parseInt(ele.charLen))
{
//alert("您輸入的"+convertNullToSpace(ele.objName)+"最大長度為"+ele.charLen);
msg = formcheck_delNull(msg) + "您輸入的"+convertNullToSpace(ele.objName)+"最大長度為"+ele.charLen;
}
//字母數(shù)字
var patrn=/^[a-zA-Z0-9]+[a-zA-Z0-9]$/;
if (value.length>0&&!patrn.exec(value)){
//alert("您輸入的"+convertNullToSpace(ele.objName)+"字符應為字母或數(shù)字");
msg = formcheck_delNull(msg) + "您輸入的"+convertNullToSpace(ele.objName)+"字符應為字母或數(shù)字";
}
}
}
/***檢查是否為年份格式***/
function checkYear(ele) {
if(ele.mustInput!=null && ele.mustInput && !isYear(ele.value)) {
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"請輸入有效年份(yyyy)";
}
var parm1 = ele.before;
var parm2 = ele.after;
//在設置年份之前
if(parm1!=null){
var mb=new Array();
mb = parm1.split(",");
for(var ii=0;ii<mb.length;ii++){
//當前校驗控件值
var rqz1 = ele.value;
//設置目標控件值
var d = new Date();
var rqz2 = d.getFullYear();
if(mb[ii]!="today"){
rqz2 = eval("document.all."+mb[ii]).value;
}
if(parseInt(rqz1) <= parseInt(rqz2)){
//return true;
if (ele.minSpan!=null && !isNaN(ele.minSpan)) {
if (parseInt(rqz1) > parseInt(rqz2) - parseInt(ele.minSpan)) {
if(mb[ii]!="today"){
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"與"+eval("document.all."+mb[ii]).objName+"的時間跨度應該大于等于"+ele.minSpan;
}else{
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"與當前年份的時間跨度應該大于等于"+ele.minSpan;
}
}
}
if (ele.maxSpan!=null && !isNaN(ele.maxSpan)) {
if (parseInt(rqz1) < parseInt(rqz2) - parseInt(ele.maxSpan)) {
if(mb[ii]!="today"){
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"與"+eval("document.all."+mb[ii]).objName+"的時間跨度應該小于等于"+ele.maxSpan;
}else{
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"與當前年份的時間跨度應該小于等于"+ele.maxSpan;
}
}
}
}else{
if(mb[ii]!="today"){
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"應該小于"+eval("document.all."+mb[ii]).objName;
}else{
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"應該小于當前年份";
}
}
}
}
//在設置年份后
if(parm2!=null){
var mb=new Array();
mb = parm2.split(",");
for(var ii=0;ii<mb.length;ii++){
//當前校驗控件值
var rqz1 = ele.value;
//設置目標控件值
var d = new Date();
var rqz2 = d.getFullYear();
if(mb[ii]!="today"){
rqz2 = eval("document.all."+mb[ii]).value;
}
if(parseInt(rqz1) >= parseInt(rqz2)){
//return true;
if (ele.minSpan!=null && !isNaN(ele.minSpan)) {
if (parseInt(rqz1) < parseInt(rqz2) + parseInt(ele.minSpan)) {
if(mb[ii]!="today"){
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"與"+eval("document.all."+mb[ii]).objName+"的時間跨度應該大于等于"+ele.minSpan;
}else{
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"與當前年份的時間跨度應該大于等于"+ele.minSpan;
}
}
}
if (ele.maxSpan!=null && !isNaN(ele.maxSpan)) {
if (parseInt(rqz1) > parseInt(rqz2) + parseInt(ele.maxSpan)) {
if(mb[ii]!="today"){
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"與"+eval("document.all."+mb[ii]).objName+"的時間跨度應該小于等于"+ele.maxSpan;
}else{
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"與當前年份的時間跨度應該小于等于"+ele.maxSpan;
}
}
}
}else{
if(mb[ii]!="today"){
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"應該大于"+eval("document.all."+mb[ii]).objName;
}else{
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"應該大于當前日期";
}
}
}
}
}
/***檢查是否為日期格式***/
function checkDate(ele)
{
if(ele.mustInput!=null && ele.mustInput&&!isDate(ele.value))
{
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"請輸入有效日期(yyyy-mm-dd)";
}
if(ele.value!=null&&ele.value!=""&&!isDate(ele.value))
{
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"請輸入有效日期(yyyy-mm-dd)";
}
var parm1 = ele.before;
var parm2 = ele.after;
//在設置日期之前
if(parm1!=null){
var mb=new Array();
mb = parm1.split(",");
for(var ii=0;ii<mb.length;ii++){
//當前校驗控件值
var rqz1 = ele.value;
//設置目標控件值
var d = new Date();
var rqz2 = d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate();
if(mb[ii]!="today"){
rqz2 = eval("document.all."+mb[ii]).value;
}
/*if(rqz1==""){
//return true;
if (msg != "") {
addMsg(ele, msg);
return false;
} else { return true; }
}*/
if(chkBefore(rqz1,rqz2)==true){
//return true;
}else{
if(mb[ii]!="today"){
//alert(convertNullToSpace(ele.objName)+"應該小于等于"+document.getElementById(parm1).objName);
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"應該小于等于"+eval("document.all."+mb[ii]).objName;
}else{
//alert(convertNullToSpace(ele.objName)+"應該小于等于當前日期");
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"應該小于等于當前日期";
}
}
}
}
//在設置日期之后
if(parm2!=null){
var mb=new Array();
mb = parm2.split(",");
for(var ii=0;ii<mb.length;ii++){
//當前校驗控件值
var rqz1 = ele.value;
//設置目標控件值
var d = new Date();
var rqz2 = d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate();
if(mb[ii]!="today"){
rqz2 = eval("document.all."+mb[ii]).value;
}
/*if(rqz1==""){
//return true;
if (msg != "") {
addMsg(ele, msg);
return false;
} else { return true; }
}*/
if(chkAfter(rqz1,rqz2)==true){
//return true;
}else{
if(mb[ii]!="today"){
//alert(convertNullToSpace(ele.objName)+"應該大于"+document.getElementById(parm2).objName);
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"應該大于"+eval("document.all."+mb[ii]).objName;
}else{
//alert(convertNullToSpace(ele.objName)+"應該大于當前日期");
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"應該大于當前日期";
}
}
}
}
}
/***檢查日期1是否大于日期2***/
function chkBefore(rqz1,rqz2){
if (rqz1=="" || rqz2=="") { return true;}
var arr1 = rqz1.split("-");
var arr2 = rqz2.split("-");
var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
if(arr1[1].length == 1)
arr1[1] = "0" + arr1[1];
if(arr1[2].length == 1)
arr1[2] = "0" + arr1[2];
if(arr2[1].length == 1)
arr2[1] = "0" + arr2[1];
if(arr2[2].length == 1)
arr2[2]="0" + arr2[2];
var d1 = arr1[0] + arr1[1] + arr1[2];
var d2 = arr2[0] + arr2[1] + arr2[2];
if(parseInt(d1,10) <= parseInt(d2,10)){
return true;
}else{
return false;
}
}
/***檢查日期1是否小于日期2***/
function chkAfter(rqz1,rqz2){
if (rqz1=="" || rqz2=="") { return true;}
var arr1 = rqz1.split("-");
var arr2 = rqz2.split("-");
var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
if(arr1[1].length == 1)
arr1[1] = "0" + arr1[1];
if(arr1[2].length == 1)
arr1[2] = "0" + arr1[2];
if(arr2[1].length == 1)
arr2[1] = "0" + arr2[1];
if(arr2[2].length == 1)
arr2[2]="0" + arr2[2];
var d1 = arr1[0] + arr1[1] + arr1[2];
var d2 = arr2[0] + arr2[1] + arr2[2];
if(parseInt(d1,10) > parseInt(d2,10)){
return true;
}else{
return false;
}
}
/***檢查是否為電子郵箱***/
function checkEmail(ele)
{
if(ele.value.length>0&&!isEmail(ele.value))
{
//alert("請輸入有效郵箱");
//addMsg(ele, "請輸入有效郵箱");
msg = formcheck_delNull(msg) + "請輸入有效郵箱";
}
}
/***檢查單選按鈕是否需要選擇***/
function checkRadio(ele)
{
//var rads = document.getElementsByName(ele.name);
//eval("var rads="+name+"."+ele.name);
eval("var rads=document.all."+ele.name);
var selectCount=0;
for(var i=0;i<rads.length;i++)
{
if(rads[i].checked)
{
selectCount++;
}
}
if(ele.mustSelect!=null && ele.mustSelect)
{
if(selectCount==0)
{
//alert("請選擇"+convertNullToSpace(ele.objName));
//addMsg(ele, "請選擇"+convertNullToSpace(ele.objName));
msg = formcheck_delNull(msg) + "請選擇"+convertNullToSpace(ele.objName);
}
}
}
/***檢查復選按鈕是否需要選擇***/
function checkBox(ele)
{
//var rads = document.getElementsByName(ele.name);
//alert(ele.name);
//eval("var chks="+name+"."+ele.name);
eval("var chks=document.all."+ele.name);
var selectCount=0;
for(var i=0;i<chks.length;i++)
{
if(chks[i].checked)
{
selectCount++;
}
}
if(ele.minSelect!=null && !isNaN(ele.minSelect))
{
if(selectCount<parseInt(ele.minSelect))
{
//alert(convertNullToSpace(ele.objName)+"至少選擇"+ele.minSelect+"項");
//addMsg(ele, convertNullToSpace(ele.objName)+"至少選擇"+ele.minSelect+"項");
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"至少選擇"+ele.minSelect+"項";
}
}
if(ele.maxSelect!=null && !isNaN(ele.maxSelect))
{
if(selectCount>parseInt(ele.maxSelect))
{
//alert(convertNullToSpace(ele.objName)+"至多選擇"+ele.maxSelect+"項");
//addMsg(ele, convertNullToSpace(ele.objName)+"至多選擇"+ele.maxSelect+"項");
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"至多選擇"+ele.maxSelect+"項";
}
}
}
/***檢查下拉列表框是否需要選擇***/
function checkSelect(ele)
{
//var rads = document.getElementsByName(ele.name);
if(ele.mustSelect!=null && ele.mustSelect)
{
//if(ele.selectedIndex==0)
if(ele.value=="")
{
//alert("請選擇"+convertNullToSpace(ele.objName));
//addMsg(ele, "請選擇"+convertNullToSpace(ele.objName));
msg = formcheck_delNull(msg) + "請選擇"+convertNullToSpace(ele.objName);
}
}
}
/***檢查列表框的選擇項數(shù)***/
function checkList(ele)
{
//var rads = document.getElementsByName(ele.name);
var selectCount=0;
for(var i=0;i<ele.options.length;i++)
{
if(ele.options[i].selected)
{
selectCount++;
}
}
//alert(selectCount);
if(ele.minSelect!=null && !isNaN(ele.minSelect))
{
if(selectCount<parseInt(ele.minSelect))
{
//alert(convertNullToSpace(ele.objName)+"至少選擇"+ele.minSelect+"項");
//addMsg(ele, convertNullToSpace(ele.objName)+"至少選擇"+ele.minSelect+"項");
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"至少選擇"+ele.minSelect+"項";
}
}
if(ele.maxSelect!=null && !isNaN(ele.maxSelect))
{
if(selectCount>parseInt(ele.maxSelect))
{
//alert(convertNullToSpace(ele.objName)+"至多選擇"+ele.maxSelect+"項");
msg = formcheck_delNull(msg) + convertNullToSpace(ele.objName)+"至多選擇"+ele.maxSelect+"項";
}
}
}
/***判斷是否為整數(shù)***/
function isInt(s)
{
var patrn=/^[-,+]{0,1}[0-9]{0,}$/;
if (!patrn.exec(s))
return false;
return true;
}
/***判斷是否為數(shù)字***/
function isNumber(s)
{
var patrn=/^[-,+]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}$/;
if (!patrn.exec(s))
return false;
return true;
}
/***判斷是否為日期***/
function isDate(str)
{
//var str = ele.value;
//var year, month, day;
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)
{
return false;
}
var d= new Date(r[1], r[3]-1, r[4]);
/*year = r[1];
month = r[3];
day = r[4];*/
if(!(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]))
{
return false;
}
/*if (parseInt(r[3], 10) < 10) month = "0" + parseInt(month, 10);
if (parseInt(r[4], 10) < 10) day = "0" + parseInt(day, 10);
if (parseInt(r[3], 10) < 10 || parseInt(r[4], 10) < 10) ele.value = year + "-" + month + "-" + day;*/
return true;
}
/***判斷是否為年份***/
function isYear(s)
{
var patrn=/^[-,+]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}$/;
if (!patrn.exec(s) || s.length != 4) {
//alert("11");
return false;
} else {
//alert("22");
return true;
}
}
/***判斷是否為郵箱***/
function isEmail(str)
{
if(str.match(/[\w-]+@{1}[\w-]+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig)!=str)
return false;
else
return true;
}
/***將NULL轉化為空格,用于顯示對象名稱***/
function convertNullToSpace(paramValue)
{
if(paramValue==null)
return "";
else
return paramValue;
}
/***檢查小數(shù)位數(shù)***/
function checkDecimal(num,decimalLen)
{
var len = decimalLen*1+1;
if(num.indexOf('.')>0)
{
num=num.substr(num.indexOf('.')+1,num.length-1);
if ((num.length)<len)
{
return true;
}
else
{
return false;
}
}
return true;
}
/***去除空格***/
function trim(str)
{
if (str.length > 0)
{
while ((str.substring(0,1) == " ") && (str.length > 0))
{
str = str.substring(1,str.length);
}
while (str.substring(str.length-1,str.length) == " ")
{
str = str.substring(0,str.length-1);
}
}
return str;
}
/********************************************************************
用戶身份證進行初校驗
實現(xiàn)功能:
1、15位的月校驗,日校驗,性別校驗(15位下的年不需要進行校驗)
2、18位的年校驗,月校驗,日校驗,性別校驗,末位國家校驗碼校驗
3、選擇性的校驗身份證是否和資料中性別匹配,參數(shù)中的性別留空,即不校驗
4、選擇性的校驗身份證是否和資料中的出生年月匹配,參數(shù)中的生日留空,即不校驗
************************************************************************/
function CheckIdCard(CardNo,Sex,Birthday){
//性別 1:男 0:女
//生日 19811010
if ((CardNo == "")||(!(isNumber(CardNo))&&(CardNo.length == 15))||(!(isNumber(CardNo.substr(0,17)))&&(CardNo.length == 18))||((CardNo.length != 15)&&(CardNo.length != 18)))
{
//alert("您的身份證號碼輸入有誤,必需是15數(shù)字或18位,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您的身份證號碼輸入有誤,必需是15數(shù)字或18位,請重新檢查并輸入!";
}
else if (CardNo.length == 15)
{
if(CardNo.substr(8,2)>12||CardNo.substr(8,2)<1)
{
//alert("您身份證的出生“月”輸入有誤,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的出生“月”輸入有誤,請重新檢查并輸入!";
}
if(CardNo.substr(10,2)>31||CardNo.substr(10,2)<1)
{
//alert("您身份證的出生“日”輸入有誤,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的出生“日”輸入有誤,請重新檢查并輸入!";
}
if(Birthday!=""&&("19" + CardNo.substr(6,6))!=Birthday)
{
//alert("您身份證的生日和資料里的生日不符,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的生日和資料里的生日不符,請重新檢查并輸入!";
}
//alert(Sex+"14="+CardNo.charAt(14)%2);
if(Sex=="男"&&CardNo.charAt(14)%2!=1)
{
//alert("您身份證的性別和資料里的性別不符,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的性別和資料里的性別不符,請重新檢查并輸入!";
}
if(Sex=="女"&&CardNo.charAt(14)%2!=0)
{
//alert("您身份證的性別和資料里的性別不符,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的性別和資料里的性別不符,請重新檢查并輸入!";
}
//return true;
}
else if (CardNo.length == 18)
{
if(CardNo.substr(6,4)<1900||CardNo.substr(6,4)>2100)
{
//alert("您身份證的出生“年”輸入有誤,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的出生“年”輸入有誤,請重新檢查并輸入!";
}
if(CardNo.substr(10,2)>12||CardNo.substr(10,2)<1)
{
//alert("您身份證的出生“月”輸入有誤,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的出生“月”輸入有誤,請重新檢查并輸入!";
}
if(CardNo.substr(12,2)>31||CardNo.substr(12,2)<1)
{
//alert("您身份證的出生“日”輸入有誤,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的出生“日”輸入有誤,請重新檢查并輸入!";
}
if(Birthday!=""&&CardNo.substr(6,8)!=Birthday)
{
//alert("您身份證的生日和資料里的生日不符,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的生日和資料里的生日不符,請重新檢查并輸入!";
}
//alert(Sex+"18="+CardNo.substr(16));
if(Sex=="男"&&CardNo.charAt(16)%2!=1)//男性校驗
{
//alert("您身份證的性別和資料里的性別不符,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的性別和資料里的性別不符,請重新檢查并輸入!";
}
if(Sex=="女"&&CardNo.charAt(16)%2!=0)//女性校驗
{
//alert("您身份證的性別和資料里的性別不符,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您身份證的性別和資料里的性別不符,請重新檢查并輸入!";
}
var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var Ai = new Array('1','0','X','9','8','7','6','5','4','3','2');
if (CardNo.charAt(17) == 'x')
{
CardNo = CardNo.replace("x","X");
}
var checkDigit = CardNo.charAt(17);
var cardNoSum = 0;
for (var i=0; i<CardNo.length-1; i++)
{
cardNoSum = cardNoSum + CardNo.charAt(i)*Wi[i];
}
var seq = cardNoSum%11;
var getCheckDigit = Ai[seq];
if (checkDigit != getCheckDigit)
{
//alert("您的身份證號碼校驗失敗,請重新檢查并輸入!");
//return false;
msg = formcheck_delNull(msg) + "您的身份證號碼校驗失敗,請重新檢查并輸入!";
}
//return true;
}
/*else
{
return true;
}*/
}
function isNumber(str)
{
if(str==null || str=="") return false ;
for(var i=0 ;i<str.length ;i++)
{
var cI = str.charAt(i) ;
if(cI<'0' || cI>'9') return false ;
}
return true;
}
function strrq10to8(str)
{
var strs = str.split("-");
var str = strs[0]+strs[1]+strs[2];
return str;
}
posted @ 2007-07-16 08:55 小鳥 閱讀(573) | 評論 (0) | 編輯 收藏