1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lxchutao-ChkInputs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
ChkInputs.js 79 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
lxchutao Отправлено 21.08.2015 12:10 a456323
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404
/****************************************************************
* 模块名称:ChkInputs.js(基于自定义属性的客户端统一验证JavaScript函数库组件)
* 当前版本:2.1.4
* 开发人员:楚涛
* 开发时间:2008-01-01
* 功 能:基于自定义属性的统一检测客户端输入之用的JavaScript函数库
可以验证输入框的内容必填、数据类型、字节长度及自定义校验和下拉框等
此函数库可用于支持JavaScript的各种浏览器的Web开发项目的使用
* 版本历史:
* 2009-01-20 添加对控件的分组校验功能
* 2009-02-10 添加对控件的除去不能为空的所有校验功能
* 2009-04-01 添加单击、Enter键盘键,未通过验证终止事件功能,
* 2010-05-02 添加可指定验证控件初始值、弹出消息的类型、支持自定义验证正则表达式功能、指定控件的初始值
* 2010-06-02 添加验证信息在页面静态文本的显示
* 2010-06-16 添加数据值型控件的可设置最大、最小值的限制
* 2010-06-26 添加对Firefox等的全面兼容
* 2010-08-01 添加对验证不通过的控件改变样式的功能
* 2010-10-10 添加对日期时间及当前日期时间的比较、身份证格式、组合值和指定控件的验证
* 2011-01-01 添加为所有验证控件订购失去焦点时的即时验证事件
* 2011-01-15 添加可设置显示类似谷歌/百度下拉选项菜单(弹出层div显示valuerange设置项)
* 2011-03-12 添加对复选框/单选框的验证
* 2011-04-16 将选择符$改为$$
* 2011-05-15 添加输入最小长度的判断
可使用【onmousedown(鼠标单击)并结合onkeydown(键盘键)】 或者 【OnClientClick事件】【onclick】等方式。示例如下:
<script language="javascript">function CheckAll(){verifyAll(return document.getElementById("form1"));}</script>
onmousedown="return CheckAll();" onkeydown="if(event.keyCode == 13){return CheckAll();}"
如:在asp.net下的 aspx 页面中直接使用OnClientClick="return CheckAll();"
在HTML控件中可直接使用 onclick="return CheckAll();"
*****************************************************************/
/****************************************************************
© 楚涛 2008-2011 lxchutao@163.com QQ:290363711 http://blog.csdn.net/chutao
*****************************************************************/
/****************************************************************
详细说明:
为每个需要进行数据校验的控件自定义了如下新属性,分别是:
1、chinese:表示该数据校验的控件的中文名称,同时标示待验证控件(必设属性,未设置的将直接跳过,不予验证),并在校验出错时显示所用。
2、maxsize:表示允许输入的最大长度,这个长度是以字节为单位计算的;
minsize:表示必须输入的最小长度,这个长度也是以字节为单位计算的。
3、nullable:表示输入值是否允许为空。为no时不允许为空。
4、datatype:表示输入值的数据类型。数据类型属性值用户可以根据需要自行扩展定义,
需要注意的是,对于每一个新的数据类型,均需要在下面代码中添加相应的校验函数,从而实现统一校验。
目前支持:
number : 正整数数字字符串
int :整数数字字符串(可正可负)(integer)
float : 浮点型数字字符串(可正可负)
alphanumeric : 只包含字母和数字的字符串
date : 日期类型(yyyy-MM-dd、yyyy/MM/dd)(comparecurrent:"1"小于当前日期,"2"大于当前日期,"3"小于等于当前日期,"4"大于等于当前日期)
datetime : 日期时间类型(yyyy-MM-dd HH:mm:ss、yyyy/MM/dd hh:mm:ss)(comparecurrent:"1"小于当前日期时间,"2"大于当前日期时间,"3"小于等于当前日期时间,"4"大于等于当前日期时间)
time : 时间类型(HH:mm:ss)(comparecurrent:"1"小于当前时间,"2"大于当前时间,"3"小于等于当前时间,"4"大于等于当前时间)
idcard : 中华人民共和国身份证号码
regular :自定义的验证正则表达式(regexpression验证正则表达式,notmatchinfo:验证不匹配的提示信息)(配合regular使用)
5、group: 表示分组验证的组别名称,属于哪一组(可选)
group1: 表示另类分组,补充group属性,可选,用于一个控件属于多个组时的验证
group2: 表示另类分组,补充group属性,可选,用于一个控件属于多个组时的验证
group3: 表示另类分组,补充group属性,可选,用于一个控件属于多个组时的验证
group4: 表示另类分组,补充group属性,可选,用于一个控件属于多个组时的验证
group5: 表示另类分组,补充group属性,可选,用于一个控件属于多个组时的验证
6、initialvalue: 设置控件的初始值
7、maxvalue、minvalue: 设置数值型控件的最大、最小值
notequalmax="true": 不等于最大值的标示,默认等于
notequalmin="true": 不等于最小值的标示,默认等于
8、notmatchclass:验证不通过控件的样式名称;若未设置该属性则控件样式保持不变
oldclassname:记录不匹配验证控件的原来的样式名称,配合notmatchclass使用
9、valuerange: 定义所包含的组合值,分隔符(m_split="|";如:"x|y|z";分割符可以修改,如m_split="┋"等)
notcheckvaluerange="true":指示不检查valuerange组合值,false或不设置:将检查
10、showmenu:设置显示下拉项菜单(弹出层div显示valuerange设置项),1:下拉选项菜单(可选择),2:下拉项菜单(不可选择);(可选)
chk_menuclass:弹出层div样式(showmenu有值时必选)
chk_menuclass_mouseover:弹出层div选项鼠标移在上面时的样式(showmenu有值时必选)
chk_menuclass_mouseout:弹出层div选项鼠标移出时的样式(showmenu有值时必选)
须配合valuerange使用
11、ischeckinstant:设置是否使用即时验证功能,"false"不使用,须手动设置;默认使用,不用设置
12、chkminselct:设置checkbox最少选择项(可选)
13、
/****************************************************************/
var m_msgType = 2;//提示信息类型(全局设置 1:弹出单个提示、2:弹出全部提示(默认推荐选项)、3:页面控件静态显示)
var m_MessageId = "MessageId";//m_msgType = 3 时用于页面控件静态显示验证信息的控件ID,该控件在页面必须存在否则找不到控件对象无法显示验证信息
var m_AttributeFlag = 0;//自定义属性是否区分大小写标示,默认0不区分大小写,1区分大小写
var m_TrimFlag = 0;//设置验证字符串长度是否包含两边空白部分,默认0不包含(即过滤两边空白),1包含(即不过滤两边空白)
var m_split = "|";//设置valuerange组合值的分隔符,默认"|";可以修改,如m_split="┋"等
var m_Alert_Mode = 0;//设置提示框(chkAlert)的模式,默认0:alert,
var m_msgAll = "";//产生的所有信息
var m_input = null;//记录第一个验证未通过的对象
var m_inputNames = new Array();//记录按Name验证的Input
var m_form;//保留
/* 初始化参数 */
function initAllParams()
{
m_msgAll = "";//产生的所有信息
m_input = null;
m_inputNames = new Array();
}
/* 检测指定FORM表单所有应被检测的元素(那些具有自定义属性的元素)是否合法,此函数用可于表单的onsubmit等事件 */
function verifyAll(myform)
{
initAllParams();
try
{
if(m_msgType == 1)return verifyAllType1(myform);
else if(m_msgType == 3)return verifyAllType3(myform);
else return verifyAllType2(myform);
}
catch(e){return CancelClientEvent();}
}
/* 预处理订购所有控件的事件 */
function loadAllChkInputs(myform)
{
try
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i++)
{
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
/* 为所有验证控件订购失去焦点时的验证事件 */
detachEventHandler(myform.elements[i],"blur",verifyInputOnblur);
attachEventHandler(myform.elements[i],"blur",verifyInputOnblur);
/* 订购所有控件获得焦点时的事件 */
if(myform.elements[i].getAttribute("valuerange",m_AttributeFlag) != null)
{
if(myform.elements[i].getAttribute("showmenu",m_AttributeFlag)=="1")
{
detachEventHandler(myform.elements[i],"focus",showSelectMenuOnEvent);
attachEventHandler(myform.elements[i],"focus",showSelectMenuOnEvent);
}
else if(myform.elements[i].getAttribute("showmenu",m_AttributeFlag)=="2")
{
detachEventHandler(myform.elements[i],"focus",showDropMenuOnEvent);
attachEventHandler(myform.elements[i],"focus",showDropMenuOnEvent);
myform.elements[i].setAttribute("notcheckvaluerange", "true")
}
}
}
}
catch(e){}
}
/* $函数 */
window.$$ = function(id)
{
return document.getElementById(id);
};
/* 修改Object原型的方法来申明attachEvent的兼容方法 */
/*
Object.prototype.attachEvent = function(eventType,fnHandler)
{
if(!this[eventType]){
this[eventType]=fnHandler;
}
else{
this[eventType]=this[eventType].attach(fnHandler);
}
}
Function.prototype.attach=function(fnHandler){
var f=this;
return function(){
f();
fnHandler();
}
}
*/
/* attachEvent()兼容方法 */
function attachEventHandler(target, eventType, fnHandler) {
if (target.addEventListener) {
target.addEventListener(eventType, fnHandler, false);
} else if (target.attachEvent) {
target.attachEvent("on" + eventType, fnHandler);
} else {
target["on" + eventType] = fnHandler;
}
}
/* detachEvent()兼容方法 */
function detachEventHandler(target,eventType,fnHandler) {
if (target.removeEventListener)
target.removeEventListener(eventType,fnHandler,false);
else if (target.detachEvent)
target.detachEvent("on"+eventType,fnHandler);
else {
target["on" + sEventType]=null;
}
}
/* 检测指定FORM表单所有应被检测的元素(那些具有自定义属性的元素)是否合法,剔除不能为空的判断,此函数用可于表单的onsubmit等事件 */
function verifyAllExceptNullable(myform)
{
initAllParams();
try
{
if(m_msgType == 1)return verifyAllExceptNullableType1(myform);
else if(m_msgType == 3)return verifyAllExceptNullableType3(myform);
else return verifyAllExceptNullableType2(myform);
}
catch(e){return CancelClientEvent();}
}
/* 分组验证 */
function verifyAllByGroup(myform,groupname)
{
initAllParams();
try
{
if(m_msgType == 1)return verifyAllGroupType1(myform,groupname);
else if(m_msgType == 3)return verifyAllGroupType3(myform,groupname);
else return verifyAllGroupType2(myform,groupname);
}
catch(e){return CancelClientEvent();}
}
/* 可选分组验证,group分组的扩展,用于一个控件属于多个组时的验证 */
function verifyAllByGroup1(myform,groupname)
{
initAllParams();
try
{
if(m_msgType == 1)return verifyAllGroup1Type1(myform,groupname);
else if(m_msgType == 3)return verifyAllGroup1Type3(myform,groupname);
else return verifyAllGroup1Type2(myform,groupname);
}
catch(e){return CancelClientEvent();}
}
/* 可选分组验证,group分组的扩展,用于一个控件属于多个组时的验证 */
function verifyAllByGroup2(myform,groupname)
{
initAllParams();
try
{
if(m_msgType == 1)return verifyAllGroup2Type1(myform,groupname);
else if(m_msgType == 3)return verifyAllGroup2Type3(myform,groupname);
else return verifyAllGroup2Type2(myform,groupname);
}
catch(e){return CancelClientEvent();}
}
/* 可选分组验证,group分组的扩展,用于一个控件属于多个组时的验证 */
function verifyAllByGroup3(myform,groupname)
{
initAllParams();
try
{
if(m_msgType == 1)return verifyAllGroup3Type1(myform,groupname);
else if(m_msgType == 3)return verifyAllGroup3Type3(myform,groupname);
else return verifyAllGroup3Type2(myform,groupname);
}
catch(e){return CancelClientEvent();}
}
/* 可选分组验证,group分组的扩展,用于一个控件属于多个组时的验证 */
function verifyAllByGroup4(myform,groupname)
{
initAllParams();
try
{
if(m_msgType == 1)return verifyAllGroup4Type1(myform,groupname);
else if(m_msgType == 3)return verifyAllGroup4Type3(myform,groupname);
else return verifyAllGroup4Type2(myform,groupname);
}
catch(e){return CancelClientEvent();}
}
/* 可选分组验证,group分组的扩展,用于一个控件属于多个组时的验证 */
function verifyAllByGroup5(myform,groupname)
{
initAllParams();
try
{
if(m_msgType == 1)return verifyAllGroup5Type1(myform,groupname);
else if(m_msgType == 3)return verifyAllGroup5Type3(myform,groupname);
else return verifyAllGroup5Type2(myform,groupname);
}
catch(e){return CancelClientEvent();}
}
/* 为所有验证控件订购失去焦点时的验证事件 无返回值 */
function verifyAllOnblur(myform)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i++)
{
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
//myform.elements[i].detachEvent("onblur",verifyInputOnblur);//未实现修改Object原型的方法来申明detachEvent的兼容方法
detachEventHandler(myform.elements[i],"blur",verifyInputOnblur);
//myform.elements[i].attachEvent("onblur",verifyInputOnblur);
attachEventHandler(myform.elements[i],"blur",verifyInputOnblur);
}
}
/* 验证控件失去焦点时的验证事件(仅用于verifyAllOnblur) 无返回值 */
function verifyInputOnblur()
{
var event = arguments[0]||window.event;
var eventSource=event.srcElement||event.target;
checkInputNoFocus(eventSource);
}
/* 订购所有控件获得焦点时的下拉选择事件 无返回值 */
function showAllSelectMenu(myform)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i++)
{
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
if(myform.elements[i].getAttribute("valuerange",m_AttributeFlag) != null && myform.elements[i].getAttribute("showmenu",m_AttributeFlag)=="1")
{
detachEventHandler(myform.elements[i],"focus",showSelectMenuOnEvent);
attachEventHandler(myform.elements[i],"focus",showSelectMenuOnEvent);
}
}
}
/* 订购控件显示下拉选择项事件 无返回值 */
function showSelectMenuOnEvent()
{
var event = arguments[0]||window.event;
var eventSource=event.srcElement||event.target;
showSelectMenu(eventSource);
}
/* 订购显示指定控件下拉选择项菜单 */
function showSelectMenu(input)
{
var v_m_input_cursor=0;//事件源 0:光标移入 1:光标移出
var v_m_menu_cursor=1; //弹出层 0:光标移入 1:光标移出
var v_m_menu_id = "chk_new_select_menudiv_1";//下拉选项菜单id
var v_m_input_isSetnotcheckvaluerange = 0;//判断该控件是否设置了notcheckvaluerange的属性值,0未设置,1已设置
var v_m_input_Oldnotcheckvaluerange = "";//该控件所设置了notcheckvaluerange的属性值
if ($$(v_m_menu_id)) document.body.removeChild($$(v_m_menu_id));
if ($$(v_m_menu_id)) document.body.removeChild($$(v_m_menu_id));
//新弹出层
var newDiv = document.createElement("div");//document.createElement("iframe");//
newDiv.id = v_m_menu_id;
//newDiv.style.background = "#EFEFEF";
//newDiv.style.border = "1px solid #860001";
//newDiv.style.padding = "5px";
newDiv.className="chk_menuclass";
newDiv.style.position = "absolute";
newDiv.style.zIndex = 9999;
newDiv.style.overflow="auto";
//newDiv.style.filter = "alpha(opacity=40)";
//newDiv.style.opacity = "0.40";
newDiv.style.width = input.offsetWidth + "px";
// newDiv.style.top = input.offsetTop + input.offsetHeight + input.offsetParent.offsetTop + "px";
// newDiv.style.left = input.offsetLeft + input.offsetParent.offsetLeft + "px";
newDiv.style.top = input.offsetHeight + getChkInputTop(input) + "px";
newDiv.style.left = getChkInputLeft(input) + "px";
input.getAttribute("valuerange",m_AttributeFlag)
var arr = input.getAttribute("valuerange",m_AttributeFlag).split(m_split);
if(arr.length>25)
{
newDiv.style.height = 500 + "px";
}
for(var i=0;i<arr.length;i++)
{
var v_element=document.createElement("div");
v_element.innerHTML =arr[i];
if(input.value!=null && input.value!="" && input.value==arr[i])
{
v_element.style.fontWeight="bold";
}
else
{
v_element.style.fontWeight="";
}
//v_element.style.zIndex = 9999;
detachEventHandler(v_element,"mouseover",setSubDivMouseOver);
detachEventHandler(v_element,"mouseout",setSubDivMouseOut);
detachEventHandler(v_element,"mousedown",setSubDivClick);//click,mouseup
attachEventHandler(v_element,"mouseover",setSubDivMouseOver);
attachEventHandler(v_element,"mouseout",setSubDivMouseOut);
attachEventHandler(v_element,"mousedown",setSubDivClick);//click,mouseup
newDiv.appendChild(v_element);
}
detachEventHandler(newDiv,"mouseover",newDivSelectMouseMove);
//detachEventHandler(newDiv,"mouseout",newDivSelectMouseOut);
attachEventHandler(newDiv,"mouseover",newDivSelectMouseMove);
//attachEventHandler(newDiv,"mouseout",newDivSelectMouseOut);//关闭新图层
document.body.appendChild(newDiv);
detachEventHandler(input,"focus",input_onfocus);
detachEventHandler(input,"blur",input_onblur);
detachEventHandler(input,"keyup",input_onkeyup);
attachEventHandler(input,"focus",input_onfocus);
attachEventHandler(input,"blur",input_onblur);//关闭新图层
attachEventHandler(input,"keyup",input_onkeyup);
//下拉选项鼠标移上时的事件
function setSubDivMouseOver()
{
var event = arguments[0]||window.event;
var eventSource=event.srcElement||event.target;
eventSource.className="chk_menuclass_mouseover";
if(input.getAttribute("notcheckvaluerange",m_AttributeFlag)!=null)
{
v_m_input_isSetnotcheckvaluerange = 1;
v_m_input_Oldnotcheckvaluerange = input.getAttribute("notcheckvaluerange",m_AttributeFlag)
}
input.setAttribute("notcheckvaluerange", "true");
}
//下拉选项鼠标移上时的事件
function setSubDivMouseOut()
{
var event = arguments[0]||window.event;
var eventSource=event.srcElement||event.target;
eventSource.className="chk_menuclass_mouseout";
if(v_m_input_isSetnotcheckvaluerange = 1)
{
v_m_input_isSetnotcheckvaluerange = 0;
input.setAttribute("notcheckvaluerange", v_m_input_Oldnotcheckvaluerange);
}
else
{
input.removeAttribute("notcheckvaluerange");
}
}
//下拉选项点击时事件
function setSubDivClick()
{
var event = arguments[0]||window.event;
var eventSource=event.srcElement||event.target;
input.value=eventSource.innerHTML;
if(v_m_input_isSetnotcheckvaluerange = 1)
{
v_m_input_isSetnotcheckvaluerange = 0;
input.setAttribute("notcheckvaluerange", v_m_input_Oldnotcheckvaluerange);
}
else
{
input.removeAttribute("notcheckvaluerange");
}
if ($$(v_m_menu_id)) document.body.removeChild($$(v_m_menu_id));//关闭该div图层
}
function newDivSelectMouseMove(){v_m_menu_cursor=0;}
//关闭新图层
function newDivSelectMouseOut()
{
v_m_menu_cursor=1;
var v_id = $$(v_m_menu_id);
if(v_id && v_m_input_cursor != 0)
{
document.body.removeChild(v_id);
return false;
}
}
//关闭新图层
function input_onblur()
{
v_m_input_cursor = 1;
var v_id = $$(v_m_menu_id);
if(v_id && v_m_menu_cursor != 0)
{
document.body.removeChild(v_id);
return false;
}
}
function input_onfocus()
{
v_m_input_cursor = 0;
}
//字符动态过滤
function input_onkeyup()
{
if($$(v_m_menu_id))
{
var v_menu = $$(v_m_menu_id).childNodes;
if(v_menu)
{
for(var i=0;i<v_menu.length;i++)
{
var v_menuInnerHTML = v_menu[i].innerHTML.toUpperCase();
var v_inputValue = input.value.toUpperCase();
if(input.value!=null && input.value!="" && v_menuInnerHTML.indexOf(v_inputValue)==-1)
{
v_menu[i].style.display="none";
}
else
{
if(input.value!=null && input.value!="" && v_menuInnerHTML.indexOf(v_inputValue)!=-1)
{
v_menu[i].style.fontWeight="bold";
}
else
{
v_menu[i].style.fontWeight="";
}
v_menu[i].style.display="";
}
}
}
}
}
}
/* 订购所有控件获得焦点时的不可选择下拉项事件 无返回值 */
function showAllDropMenu(myform)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i++)
{
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
if(myform.elements[i].getAttribute("valuerange",m_AttributeFlag) != null && myform.elements[i].getAttribute("showmenu",m_AttributeFlag)=="2")
{
detachEventHandler(myform.elements[i],"focus",showDropMenuOnEvent);
attachEventHandler(myform.elements[i],"focus",showDropMenuOnEvent);
myform.elements[i].setAttribute("notcheckvaluerange", "true")
}
}
}
/* 订购控件显示不可选择下拉选项事件 无返回值 */
function showDropMenuOnEvent()
{
var event = arguments[0]||window.event;
var eventSource=event.srcElement||event.target;
showDropMenu(eventSource);
}
/* 订购显示指定控件不可选择下拉项菜单 */
function showDropMenu(input)
{
var v_m_input_cursor=0;//事件源 0:光标移入 1:光标移出
var v_m_menu_cursor=1; //弹出层 0:光标移入 1:光标移出
var v_m_menu_id = "chk_new_drop_menudiv_2";//下拉选项菜单id
if ($$(v_m_menu_id)) document.body.removeChild($$(v_m_menu_id));
if ($$(v_m_menu_id)) document.body.removeChild($$(v_m_menu_id));
//新弹出层
var newDiv = document.createElement("div");
newDiv.id = v_m_menu_id;
//newDiv.style.background = "#EFEFEF";
//newDiv.style.border = "1px solid #860001";
//newDiv.style.padding = "5px";
newDiv.className="chk_menuclass";
newDiv.style.position = "absolute";
newDiv.style.zIndex = 9999;
newDiv.style.overflow="auto";
newDiv.style.width = input.offsetWidth+ "px";
// newDiv.style.top = input.offsetTop+input.offsetHeight;
// newDiv.style.left = input.offsetLeft;
newDiv.style.top = input.offsetHeight + getChkInputTop(input) + "px";
newDiv.style.left = getChkInputLeft(input) + "px";
input.getAttribute("valuerange",m_AttributeFlag)
var arr = input.getAttribute("valuerange",m_AttributeFlag).split(m_split);
if(arr.length>25)
{
newDiv.style.height = 500 + "px";
}
for(var i=0;i<arr.length;i++)
{
var v_element=document.createElement("div");
v_element.innerHTML =arr[i];
detachEventHandler(v_element,"mouseover",setDivMouseOver);
detachEventHandler(v_element,"mouseout",setDivMouseOut);
attachEventHandler(v_element,"mouseover",setDivMouseOver);
attachEventHandler(v_element,"mouseout",setDivMouseOut);
newDiv.appendChild(v_element);
}
detachEventHandler(newDiv,"mouseover",newDivOnMouseMove);
detachEventHandler(newDiv,"mouseout",newDivOnMouseOut);
attachEventHandler(newDiv,"mouseover",newDivOnMouseMove);
attachEventHandler(newDiv,"mouseout",newDivOnMouseOut);//关闭新图层
document.body.appendChild(newDiv);
detachEventHandler(input,"focus",input_onfocus);
detachEventHandler(input,"blur",input_onblur);
attachEventHandler(input,"focus",input_onfocus);
attachEventHandler(input,"blur",input_onblur);//关闭新图层
//下拉选项鼠标移上时的事件
function setDivMouseOver()
{
var event = arguments[0]||window.event;
var eventSource=event.srcElement||event.target;
eventSource.className="chk_menuclass_mouseover";
}
//下拉选项鼠标移出时的事件
function setDivMouseOut()
{
var event = arguments[0]||window.event;
var eventSource=event.srcElement||event.target;
eventSource.className="chk_menuclass_mouseout";
}
function newDivOnMouseMove(){v_m_menu_cursor=0;}
//关闭新图层
function newDivOnMouseOut()
{
v_m_menu_cursor=1;
var v_id = $$(v_m_menu_id);
if(v_id && v_m_input_cursor != 0)
{
document.body.removeChild(v_id);
return false;
}
}
//关闭新图层
function input_onblur()
{
v_m_input_cursor = 1;
var v_id = $$(v_m_menu_id);
if(v_id && v_m_menu_cursor != 0)
{
document.body.removeChild(v_id);
return false;
}
}
function input_onfocus()
{
v_m_input_cursor = 0;
}
}
/* 所有控件判断类型1的验证 */
function verifyAllType1(myform)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if (verifyInput(myform.elements[i]) == false)
{
focusInput(myform.elements[i]);
CancelClientEvent();
return false;
}
}
return true;
}
/* 所有控件判断类型2的验证 */
function verifyAllType2(myform)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
if(m_input != null)
{
chkAlert(m_msgAll);
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 所有控件判断类型3的验证 */
function verifyAllType3(myform)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
if(m_input != null)
{
showMsgInMessageId();
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 剔除不能为空的所有控件判断类型1的验证 */
function verifyAllExceptNullableType1(myform)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if (verifyInputExceptNullable(myform.elements[i]) == false)
{
focusInput(myform.elements[i]);
CancelClientEvent();
return false;
}
}
return true;
}
/* 剔除不能为空的所有控件判断类型2的验证 */
function verifyAllExceptNullableType2(myform)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if (verifyInputExceptNullable(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
if(m_input != null)
{
chkAlert(m_msgAll);
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 剔除不能为空的所有控件判断类型3的验证 */
function verifyAllExceptNullableType3(myform)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if (verifyInputExceptNullable(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
if(m_input != null)
{
showMsgInMessageId();
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 分组验证 类型1的验证 */
function verifyAllGroupType1(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false)
{
focusInput(myform.elements[i]);
CancelClientEvent();
return false;
}
}
}
return true;
}
/* 分组验证 类型2的验证 */
function verifyAllGroupType2(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
chkAlert(m_msgAll);
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 分组验证 类型3的验证 */
function verifyAllGroupType3(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
showMsgInMessageId();
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 可选分组验证1 类型1的验证 */
function verifyAllGroup1Type1(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group1",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false)
{
focusInput(myform.elements[i]);
CancelClientEvent();
return false;
}
}
}
return true;
}
/* 可选分组验证2 类型2的验证 */
function verifyAllGroup1Type2(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group1",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
chkAlert(m_msgAll);
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 可选分组验证2 类型3的验证 */
function verifyAllGroup1Type3(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group1",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
showMsgInMessageId();
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 可选分组验证2 类型1的验证 */
function verifyAllGroup2Type1(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group2",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false)
{
focusInput(myform.elements[i]);
CancelClientEvent();
return false;
}
}
}
return true;
}
/* 可选分组验证2 类型2的验证 */
function verifyAllGroup2Type2(myform,groupname)
{
var i;
var length = myform.elements.length
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group2",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
chkAlert(m_msgAll);
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 可选分组验证2 类型3的验证 */
function verifyAllGroup2Type3(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group2",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
showMsgInMessageId();
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 可选分组验证3 类型1的验证 */
function verifyAllGroup3Type1(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group3",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false)
{
focusInput(myform.elements[i]);
CancelClientEvent();
return false;
}
}
}
return true;
}
/* 可选分组验证3 类型2的验证 */
function verifyAllGroup3Type2(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group3",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
chkAlert(m_msgAll);
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 可选分组验证3 类型3的验证 */
function verifyAllGroup3Type3(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group3",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
showMsgInMessageId();
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 可选分组验证4 类型1的验证 */
function verifyAllGroup4Type1(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group4",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false)
{
focusInput(myform.elements[i]);
CancelClientEvent();
return false;
}
}
}
return true;
}
/* 可选分组验证4 类型2的验证 */
function verifyAllGroup4Type2(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group4",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
chkAlert(m_msgAll);
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 可选分组验证4 类型3的验证 */
function verifyAllGroup4Type3(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group4",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
showMsgInMessageId();
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 可选分组验证5 类型1的验证 */
function verifyAllGroup5Type1(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group5",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false)
{
focusInput(myform.elements[i]);
CancelClientEvent();
return false;
}
}
}
return true;
}
/* 可选分组验证5 类型2的验证 */
function verifyAllGroup5Type2(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group5",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
chkAlert(m_msgAll);
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 可选分组验证5 类型3的验证 */
function verifyAllGroup5Type3(myform,groupname)
{
var i;
var length = myform.elements.length;
for (i = 0;i < length; i ++)
{
/* 非自定义属性的元素即不验证的元素跳过不予处理 */
if (myform.elements[i].getAttribute("chinese",m_AttributeFlag) == null) continue;
clearNotMatchInputClass(myform.elements[i]);
/* 校验当前元素 */
if(myform.elements[i].getAttribute("group5",m_AttributeFlag) == groupname)
{
if (verifyInput(myform.elements[i]) == false && m_input == null)
{
m_input = myform.elements[i];
}
}
}
if(m_input != null)
{
showMsgInMessageId();
focusInput(m_input);
CancelClientEvent();
return false;
}
return true;
}
/* 检测指定文本框输入是否合法 */
function verifyInput(input)
{
if(input.type=="checkbox" || input.type=="radio")
{
var v_msg = verifyInputByName(input.name);
if(v_msg!=null && v_msg!="")
{
notMatchInputClass(input);
m_msgAll += v_msg + "\n";
if(m_msgType == 1)chkAlert(v_msg);
return false;
}
}
else
{
var v_initialValue = "";
if(input.getAttribute("initialvalue",m_AttributeFlag) != null )v_initialValue = input.getAttribute("initialvalue",m_AttributeFlag);
/* 非空校验 */
if (input.getAttribute("nullable",m_AttributeFlag) == "no" && (!isNull(checkTrim(input.value)) || checkTrim(input.value) == v_initialValue))
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "不能为空\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "不能为空");
return false;
}
/* 长度校验 */
if (input.getAttribute("maxsize",m_AttributeFlag) != null && strlen(checkTrim(input.value)) > parseInt(input.getAttribute("maxsize",m_AttributeFlag)))
{
notMatchInputClass(input);
/*m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "超出最大长度的 " + input.getAttribute("maxsize",m_AttributeFlag) + "个字节\n";*/
/*if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "超出最大长度的 " + input.getAttribute("maxsize",m_AttributeFlag) + "个字节");*/
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "内容太长,不应超过 " + input.getAttribute("maxsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("maxsize",m_AttributeFlag)) / 2 + " 个汉字的长度\n";
if (m_msgType == 1) chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "内容太长,不应超过 " + input.getAttribute("maxsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("maxsize",m_AttributeFlag)) / 2 + " 个汉字的长度");
return false;
}
if (input.getAttribute("minsize",m_AttributeFlag) != null && !(!isNull(checkTrim(input.value)) || checkTrim(input.value) == v_initialValue)
&& strlen(checkTrim(input.value)) < parseInt(input.getAttribute("minsize",m_AttributeFlag)))
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "内容太短,至少须 " + input.getAttribute("minsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("minsize",m_AttributeFlag)) / 2 + " 个汉字的长度\n";
if (m_msgType == 1) chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "内容太短,至少须 " + input.getAttribute("minsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("minsize",m_AttributeFlag)) / 2 + " 个汉字的长度");
return false;
}
if (isNull(checkTrim(input.value)) && checkTrim(input.value) != v_initialValue)
{
/* 数据类型校验 */
switch(input.getAttribute("datatype",m_AttributeFlag))
{
case "number":
if (isNumber(checkTrim(input.value))==false)
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该全为整数数字\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该全为整数数字");
return false;
}
else
{
var v_rangeMsg = verifyInputMaxMinValue(input);
if(v_rangeMsg != "")
{
notMatchInputClass(input);
m_msgAll += v_rangeMsg + "\n";
if(m_msgType == 1)chkAlert(v_rangeMsg);
return false;
}
}
break;
case "int":
if (isInt(checkTrim(input.value))==false)
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数");
return false;
}
else
{
var v_rangeMsg = verifyInputMaxMinValue(input);
if(v_rangeMsg != "")
{
notMatchInputClass(input);
m_msgAll += v_rangeMsg + "\n";
if(m_msgType == 1)chkAlert(v_rangeMsg);
return false;
}
}
break;
case "integer":
if (isInt(checkTrim(input.value))==false)
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数");
return false;
}
else
{
var v_rangeMsg = verifyInputMaxMinValue(input);
if(v_rangeMsg != "")
{
m_msgAll += v_rangeMsg + "\n";
if(m_msgType == 1)chkAlert(v_rangeMsg);
return false;
}
}
break;
case "float":
if (isFloat(checkTrim(input.value))==false)
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该全为数字\n"
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该全为数字");
return false;
}
else
{
var v_rangeMsg = verifyInputMaxMinValue(input);
if(v_rangeMsg != "")
{
notMatchInputClass(input);
m_msgAll += v_rangeMsg + "\n";
if(m_msgType == 1)chkAlert(v_rangeMsg);
return false;
}
}
break;
case "alphanumeric":
if (isAlphanumeric(checkTrim(input.value)) == false )
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该为合法的包含字母和数字的字符串\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为合法的包含字母和数字的字符串");
return false;
}
break;
case "idcard":
if (isIDCard(checkTrim(input.value)) == false )
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的身份证号\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的身份证号");
return false;
}
break;
case "date":
if (isDate(checkTrim(input.value)) == false )
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期格式\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期格式");
return false;
}
else
{
var v_temp_msg = verifyInputDateValue(input);
if(v_temp_msg != "")
{
notMatchInputClass(input);
m_msgAll += v_temp_msg + "\n";
if(m_msgType == 1)chkAlert(v_temp_msg);
return false;
}
}
break;
case "datetime":
if (isDateTime(checkTrim(input.value)) == false )
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期时间格式\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期时间格式");
return false;
}
else
{
var v_temp_msg = verifyInputDateTimeValue(input);
if(v_temp_msg != "")
{
notMatchInputClass(input);
m_msgAll += v_temp_msg + "\n";
if(m_msgType == 1)chkAlert(v_temp_msg);
return false;
}
}
break;
case "time":
if (isTime(checkTrim(input.value)) == false )
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的时间格式\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的时间格式");
return false;
}
else
{
var v_temp_msg = verifyInputTimeValue(input);
if(v_temp_msg != "")
{
notMatchInputClass(input);
m_msgAll += v_temp_msg + "\n";
if(m_msgType == 1)chkAlert(v_temp_msg);
return false;
}
}
break;
case "regular":
{
var reg = eval("/" + input.getAttribute("regexpression",m_AttributeFlag) + "/");
if(!reg.test(checkTrim(input.value)))
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + input.getAttribute("notmatchinfo",m_AttributeFlag) + "\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + input.getAttribute("notmatchinfo",m_AttributeFlag));
return false;
}
}
break;
/* 在这里可以添加多个自定义数据类型的校验判断 */
/* case datatype2: ... ; break; */
/* ....其他扩展数据类型写在这里........*/
/*default : break;*/
}
if (isValueRange(input)==false)
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值不在合法的范围内\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值不在合法的范围内");
return false;
}
}
}
return true;
}
/* 检测指定文本框输入是否合法,并剔除不能为空的判断 */
function verifyInputExceptNullable(input)
{
var v_initialValue = "";
if(input.getAttribute("initialvalue",m_AttributeFlag) != null )v_initialValue = input.getAttribute("initialvalue",m_AttributeFlag);
/* 长度校验 */
if (input.getAttribute("maxsize",m_AttributeFlag) != null && strlen(checkTrim(input.value)) > parseInt(input.getAttribute("maxsize",m_AttributeFlag)))
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "内容太长,不应超过 " + input.getAttribute("maxsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("maxsize",m_AttributeFlag)) / 2 + " 个汉字的长度\n";
if (m_msgType == 1) chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "内容太长,不应超过 " + input.getAttribute("maxsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("maxsize",m_AttributeFlag)) / 2 + " 个汉字的长度");
return false;
}
if (input.getAttribute("minsize",m_AttributeFlag) != null && !(!isNull(checkTrim(input.value)) || checkTrim(input.value) == v_initialValue)
&& strlen(checkTrim(input.value)) < parseInt(input.getAttribute("minsize",m_AttributeFlag)))
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "内容太短,至少须 " + input.getAttribute("minsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("minsize",m_AttributeFlag)) / 2 + " 个汉字的长度\n";
if (m_msgType == 1) chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "内容太短,至少须 " + input.getAttribute("minsize",m_AttributeFlag) + " 个英文字符的长度或 " + parseInt(input.getAttribute("minsize",m_AttributeFlag)) / 2 + " 个汉字的长度");
return false;
}
if (isNull(checkTrim(input.value)) && checkTrim(input.value) != v_initialValue )
{
/* 数据类型校验 */
switch(input.getAttribute("datatype",m_AttributeFlag))
{
case "number":
if (isNumber(checkTrim(input.value))==false)
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该全为整数数字\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该全为整数数字");
return false;
}
else
{
var v_rangeMsg = verifyInputMaxMinValue(input);
if(v_rangeMsg != "")
{
notMatchInputClass(input);
m_msgAll += v_rangeMsg + "\n";
if(m_msgType == 1)chkAlert(v_rangeMsg);
return false;
}
}
break;
case "int":
if (isInt(checkTrim(input.value))==false)
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数");
return false;
}
else
{
var v_rangeMsg = verifyInputMaxMinValue(input);
if(v_rangeMsg != "")
{
notMatchInputClass(input);
m_msgAll += v_rangeMsg + "\n";
if(m_msgType == 1)chkAlert(v_rangeMsg);
return false;
}
}
break;
case "integer":
if (isInt(checkTrim(input.value))==false)
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为整数");
return false;
}
else
{
var v_rangeMsg = verifyInputMaxMinValue(input);
if(v_rangeMsg != "")
{
notMatchInputClass(input);
m_msgAll += v_rangeMsg + "\n";
if(m_msgType == 1)chkAlert(v_rangeMsg);
return false;
}
}
break;
case "float":
if (isFloat(checkTrim(input.value))==false)
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值应该全为数字\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该全为数字");
return false;
}
else
{
var v_rangeMsg = verifyInputMaxMinValue(input);
if(v_rangeMsg != "")
{
notMatchInputClass(input);
m_msgAll += v_rangeMsg + "\n";
if(m_msgType == 1)chkAlert(v_rangeMsg);
return false;
}
}
break;
case "alphanumeric":
if (isAlphanumeric(checkTrim(input.value)) == false )
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) += "值应该为合法的包含字母和数字的字符串\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值应该为合法的包含字母和数字的字符串");
return false;
}
break;
case "idcard":
if (isIDCard(checkTrim(input.value)) == false )
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的身份证号\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的身份证号");
return false;
}
break;
case "date":
if (isDate(checkTrim(input.value)) == false )
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期格式\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期格式");
return false;
}
else
{
var v_temp_msg = verifyInputDateValue(input);
if(v_temp_msg != "")
{
notMatchInputClass(input);
m_msgAll += v_temp_msg + "\n";
if(m_msgType == 1)chkAlert(v_temp_msg);
return false;
}
}
break;
case "datetime":
if (isDateTime(checkTrim(input.value)) == false )
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期时间格式\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期时间格式");
return false;
}
else
{
var v_temp_msg = verifyInputDateTimeValue(input);
if(v_temp_msg != "")
{
notMatchInputClass(input);
m_msgAll += v_temp_msg + "\n";
if(m_msgType == 1)chkAlert(v_temp_msg);
return false;
}
}
break;
case "time":
if (isTime(checkTrim(input.value)) == false )
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的时间格式\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的时间格式");
return false;
}
else
{
var v_temp_msg = verifyInputTimeValue(input);
if(v_temp_msg != "")
{
notMatchInputClass(input);
m_msgAll += v_temp_msg + "\n";
if(m_msgType == 1)chkAlert(v_temp_msg);
return false;
}
}
break;
case "regular":
{
var reg = eval("/" + input.getAttribute("regexpression",m_AttributeFlag) + "/");
if(!reg.test(checkTrim(input.value)))
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + input.getAttribute("notmatchinfo",m_AttributeFlag) + "\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + input.getAttribute("notmatchinfo",m_AttributeFlag));
return false;
}
}
break;
/* 在这里可以添加多个自定义数据类型的校验判断 */
/* case datatype2: ... ; break; */
/* ....其他扩展数据类型写在这里........*/
/*default : break;*/
}
if (isValueRange(input)==false)
{
notMatchInputClass(input);
m_msgAll += input.getAttribute("chinese",m_AttributeFlag) + "值不在合法的范围内\n";
if(m_msgType == 1)chkAlert(input.getAttribute("chinese",m_AttributeFlag) + "值不在合法的范围内");
return false;
}
}
return true;
}
/* 通过name验证checkbox或radio的必选 */
function verifyInputByName(inputName)
{//设置信息以第一个设置为准,并记录name值,如果相同name以验证过则不予再验证
var v_msg = "";
for(var j=0;j<m_inputNames.length;j++)
{
if(m_inputNames[j]==inputName)return;
}
var v_name = document.getElementsByName(inputName);
var i=0,k=0;//k记录选择项
if(v_name[0].type=="checkbox" || v_name[0].type=="radio")
{
for (i = 0;i < v_name.length; i ++)
{
if(v_name[i].checked)k++;
}
if(v_name[0].getAttribute("chinese",m_AttributeFlag) != null
&& v_name[0].getAttribute("nullable",m_AttributeFlag) == "no")
{
if(k<1)
{
//验证不通过信息
v_msg = v_name[0].getAttribute("chinese",m_AttributeFlag) + "必须选择";
}
else
{
if(v_name[0].type=="checkbox")
{
if(k - v_name[0].getAttribute("chkminselct",m_AttributeFlag) < 0 )//chkminselct 最少选择项(checkbox)
{
//选项不够,验证不通过信息
v_msg = v_name[0].getAttribute("chinese",m_AttributeFlag) + "选择项不能少于 " + v_name[0].getAttribute("chkminselct",m_AttributeFlag) + "";
}
}
}
}
}
m_inputNames.push(inputName);
return v_msg;
}
/* 取得当前最近验证消息 */
function getVerifyMsg()
{
return m_msgAll;
}
/* 获取提示信息类型(1:单个提示、2:全部提示) */
function getMsgType()
{
return m_msgType;
}
/* 获取提示信息类型(1:单个提示、2:全部提示) */
function setMsgType(typeNO)
{
m_msgType = typeNO;
}
/* trim function in javascript */
function jtrim(str)
{
var tmpstr = new String(str);
var i, posh, post;
if (tmpstr==null)
{
tmpstr="";
}
for(i = 0; i < tmpstr.length; i++)
{
if(tmpstr.charAt(i) != ' ' && tmpstr.charAt(i) != '\t')
{
posh = i;
break;
}
}
for(i = tmpstr.length - 1; i >= 0; i--)
{
if(tmpstr.charAt(i) != ' ' && tmpstr.charAt(i) != '\t')
{
post = i;
break;
}
}
var newstr = str.substring(posh, post + 1);
return newstr;
}
/* 验证字符串长度是否包含两边空白部分,默认0不包含(即过滤两边空白),1包含(即不过滤两边空白) */
function checkTrim(str)
{
if(m_TrimFlag == 1)
return str;
else
return jtrim(str);
}
/* 是否整数字符的判断 true 是 false 否 */
function isInt(str)
{
var v_Value = parseInt(str,10);
var v_compare = 0;
if(v_Value > 0)
{
v_compare = Math.ceil(str) - v_Value;
}
else
{
v_compare = Math.floor(str) - v_Value;
}
if (Math.abs(v_Value) < new Number(Number.MAX_VALUE) && v_compare == 0)
{
return true;
}
return false;
}
/* 是否浮点型字符的判断 true 是 false 否 */
function isFloat(str)
{
var iChrCount;
var cTemp;
var bDot;
var iLen;
bDot = false;
iLen = str.length;
if (str.length < 1) return true;
for ( iChrCount = 0 ; iChrCount < str.length ; iChrCount ++ )
{
cTemp = str.charAt(iChrCount);
if (!(cTemp >= '0' && cTemp <= '9' ) && cTemp!='.' && cTemp != '-' && cTemp != '+')
{
return false;
}
if ( ( cTemp == '-' || cTemp == '+' ) && iChrCount > 0 )
{
return false;
}
/*判断小数点*/
if ( cTemp == '.')
{
switch ( iChrCount )
{
case 0: /*第一个和最后一个字符不能是小数点*/
return false;
break;
default:
if ( iChrCount == iLen - 1)
{ /*最后也不能是小数点*/
return false;
}
if ( bDot )
{ /*不能有两个小数点*/
return false;
}
else
{
bDot = true;
}
break;
}
}
}
return true;
}
/* 取得字符串的字节长度 */
function strlen(str)
{
//str = jtrim(str);//jtrim不包含两边空白部分,注释则包含
var i;
var len;
len = 0;
for (i = 0 ; i < str.length ; i ++)
{
if (str.charCodeAt(i) > 255) len += 2; else len ++;
}
return len;
}
/* 取得字符串的字节长度(不包含两边空白部分) */
function length(str)
{
str = jtrim(str);
return strlen(str);
}
/* 检测字符串是否为空,空为false 非空为true */
function isNull(str)
{
if (str.length < 1) return false;
return true;
}
/* 检测字符串是否全为数字 */
function isNumber(str)
{
if (str.length < 1) return true;
var number_chars = "1234567890";
var i;
for (i=0;i<str.length;i++)
{
if (number_chars.indexOf(str.charAt(i))==-1) return false;
}
return true;
}
/* 检测字符串是否是字母数字型的 */
function isAlphanumeric(str)
{
var pattern = /[a-zA-Z0-9]/;
if(pattern.test(str))
{
return true;
}
else
{
return false;
}
}
/* 检测字符串是否是正确的中华人民共和国身份证号格式 */
function isIDCard(str)
{
//var pattern = /\d{17}[\d|X]|\d{15}/;
var pattern = /^\d{17}(x|X)$|^\d{18}$|^\d{15}$/;
if(pattern.test(str))
{
return true;
}
else
{
return false;
}
}
/* 检测字符串是否是正确的日期格式 */
function isDate(str)
{
var pattern = /^(\d{1,4})(-|\/|.)(\d{1,2})\2(\d{1,2})$/;
if(pattern.test(str))
{
return true;
}
else
{
return false;
}
}
/* 检测字符串是否是正确的日期时间格式 */
function isDateTime(str)
{
var pattern = /^(\d{1,4})(-|\/|.)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
if(pattern.test(str))
{
return true;
}
else
{
return false;
}
}
/* 检测字符串是否是正确的时间格式 */
function isTime(str)
{
var pattern = /(\d{1,2}):(\d{1,2}):(\d{1,2})$/;
if(pattern.test(str))
{
return true;
}
else
{
return false;
}
}
/* 检测字符串是否在合法的范围内 */
function isValueRange(input)
{
if(input.getAttribute("valuerange",m_AttributeFlag) != null )
{
if(input.getAttribute("notcheckvaluerange",m_AttributeFlag) == "true")return true;
var arr = input.getAttribute("valuerange",m_AttributeFlag).split(m_split);
var v_value = checkTrim(input.value);
for(var i=0;i<arr.length;i++)
{
if(arr[i] == v_value)return true;
}
return false;
}
else
{
return true;
}
}
/* 检测数值控件的最大、最小值 */
function verifyInputMaxMinValue(input)
{
var v_msg = "";
var v_value = checkTrim(input.value);
if(input.getAttribute("maxvalue",m_AttributeFlag) != null && input.getAttribute("minvalue",m_AttributeFlag) != null)
{
if((v_value - input.getAttribute("maxvalue",m_AttributeFlag) >= 0 || v_value - input.getAttribute("minvalue",m_AttributeFlag) <=0) && "true" == input.getAttribute("notequalmax",m_AttributeFlag) && "true" == input.getAttribute("notequalmin",m_AttributeFlag))
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该在 (" + input.getAttribute("minvalue",m_AttributeFlag) + "," + input.getAttribute("maxvalue",m_AttributeFlag) + ") 之间";
else if((v_value - input.getAttribute("maxvalue",m_AttributeFlag) >= 0 || v_value - input.getAttribute("minvalue",m_AttributeFlag) <0) && "true" == input.getAttribute("notequalmax",m_AttributeFlag))
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该在 [" + input.getAttribute("minvalue",m_AttributeFlag) + "," + input.getAttribute("maxvalue",m_AttributeFlag) + ") 之间";
else if((v_value - input.getAttribute("maxvalue",m_AttributeFlag) > 0 || v_value - input.getAttribute("minvalue",m_AttributeFlag) <=0) && "true" == input.getAttribute("notequalmin",m_AttributeFlag))
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该在 (" + input.getAttribute("minvalue",m_AttributeFlag) + "," + input.getAttribute("maxvalue",m_AttributeFlag) + "] 之间";
else if(v_value - input.getAttribute("maxvalue",m_AttributeFlag) > 0 || v_value - input.getAttribute("minvalue",m_AttributeFlag) <0)
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该在 [" + input.getAttribute("minvalue",m_AttributeFlag) + "," + input.getAttribute("maxvalue",m_AttributeFlag) + "] 之间";
}
else if(input.getAttribute("maxvalue",m_AttributeFlag) != null)
{
if(v_value - input.getAttribute("maxvalue",m_AttributeFlag) >= 0 && "true" == input.getAttribute("notequalmax",m_AttributeFlag))
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值不应该大于等于 " + input.getAttribute("maxvalue",m_AttributeFlag);
else if(v_value - input.getAttribute("maxvalue",m_AttributeFlag) > 0)
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值不应该大于 " + input.getAttribute("maxvalue",m_AttributeFlag);
}
else if(input.getAttribute("minvalue",m_AttributeFlag) != null)
{
if(v_value - input.getAttribute("minvalue",m_AttributeFlag) <= 0 && "true" == input.getAttribute("notequalmin",m_AttributeFlag))
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值不应该小于等于 " + input.getAttribute("minvalue",m_AttributeFlag);
else if(v_value - input.getAttribute("minvalue",m_AttributeFlag) < 0)
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值不应该小于 " + input.getAttribute("minvalue",m_AttributeFlag);
}
else
{
v_msg = "";
}
return v_msg;
}
/* 检测日期控件的合法值 yyyy-MM-dd、yyyy/MM/dd*/
function verifyInputDateValue(input)
{
var v_msg = "";
var v_value = checkTrim(input.value);
if(input.getAttribute("comparecurrent",m_AttributeFlag) != null)
{
var v_compare = input.getAttribute("comparecurrent",m_AttributeFlag);
var v_current = new Date();
var arr = v_value.split("-");//length=3
if(!(arr.length>2))
{
arr = v_value.split("/");
if(!(arr.length>2))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期格式";
return v_msg;
}
}
var v_valuedate = new Date(arr[0],arr[1]-1,arr[2]);
if(v_compare == "1")
{
if(!(v_valuedate < v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于当前日期"
}
}
else if(v_compare == "2")
{
if(!(v_valuedate > v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于当前日期"
}
}
else if(v_compare == "3")
{
if(!(v_valuedate <= v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于等于当前日期"
}
}
else if(v_compare == "4")
{
if(!(v_valuedate >= v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于等于当前日期"
}
}
else
{
v_msg = "";
}
}
return v_msg;
}
/* 检测日期时间控件的合法值 yyyy-MM-dd hh:mm:ss、yyyy/MM/dd hh:mm:ss */
function verifyInputDateTimeValue(input)
{
try
{
var v_msg = "";
var v_value = checkTrim(input.value);
if(input.getAttribute("comparecurrent",m_AttributeFlag) != null)
{
var v_compare = input.getAttribute("comparecurrent",m_AttributeFlag);
var v_current = new Date();
var arr = v_value.split(" ");
var arr1 = arr[0];
var arr2 = arr[1].split(":");//length=3
var arr11 = arr1.split("-");//length=3
if(!(arr11.length>2))
{
arr11 = arr1.split("/");
if(!(arr11.length>2))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的日期时间格式";
return v_msg;
}
}
var v_valuedate = new Date(arr11[0],arr11[1]-1,arr11[2],arr2[0],arr2[1],arr2[2]);
if(v_compare == "1")
{
if(!(v_valuedate < v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于当前时间"
}
}
else if(v_compare == "2")
{
if(!(v_valuedate > v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于当前时间"
}
}
else if(v_compare == "3")
{
if(!(v_valuedate <= v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于等于当前时间"
}
}
else if(v_compare == "4")
{
if(!(v_valuedate >= v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于等于当前时间"
}
}
else
{
v_msg = "";
}
}
return v_msg;
}
catch(e){}
}
/* 检测时间控件的合法值 hh:mm:ss */
function verifyInputTimeValue(input)
{
try
{
var v_msg = "";
var v_value = checkTrim(input.value);
if(input.getAttribute("comparecurrent",m_AttributeFlag) != null)
{
var v_compare = input.getAttribute("comparecurrent",m_AttributeFlag);
var v_currentdate = new Date();
var v_current = v_currentdate.getHours()*3600 + v_currentdate.getMinutes()*60 + v_currentdate.getSeconds();
var arr = v_value.split(":");//length=3
if(!(arr.length>2))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "必须是正确的时间格式";
return v_msg;
}
var v_valuedate = arr[0]*3600 + arr[1]*60 + arr[2]*1;
if(v_compare == "1")
{
if(!(v_valuedate < v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于当前时间"
}
}
else if(v_compare == "2")
{
if(!(v_valuedate > v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于当前时间"
}
}
else if(v_compare == "3")
{
if(!(v_valuedate <= v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该小于等于当前时间"
}
}
else if(v_compare == "4")
{
if(!(v_valuedate >= v_current))
{
v_msg = input.getAttribute("chinese",m_AttributeFlag) + "值应该大于等于当前时间"
}
}
else
{
v_msg = "";
}
}
return v_msg;
}
catch(e){}
}
/* 验证结束后 */
function focusInput(input)
{
if(input.type == "text" || input.type=="textarea")
{
input.focus();
input.select();
}
else
{
input.focus();
}
}
/* 页面控件静态显示验证信息辅助方法 */
function showMsgInMessageId()
{
var v_msg = m_msgAll;
while(v_msg.search("\n")!=-1)v_msg=v_msg.replace("\n","<br>");
document.getElementById(m_MessageId).innerHTML = v_msg;
}
/* 页面控件验证不匹配控件的样式 */
function notMatchInputClass(input)
{
if(input.type=="checkbox" || input.type=="radio")
{
var v_name = document.getElementsByName(input.name);
for (var i = 0;i < v_name.length; i++)
{
if(v_name[i].getAttribute("notmatchclass",m_AttributeFlag) != null)
{
v_name[i].setAttribute("oldclassname", v_name[i].className,m_AttributeFlag);
v_name[i].className = v_name[i].getAttribute("notmatchclass",m_AttributeFlag);
}
}
}
else
{
if(input.getAttribute("notmatchclass",m_AttributeFlag) != null)
{
input.setAttribute("oldclassname", input.className);
input.className = input.getAttribute("notmatchclass",m_AttributeFlag);
}
}
}
/* 清除不匹配验证控件的显示样式 */
function clearNotMatchInputClass(input)
{
if(input.type=="checkbox" || input.type=="radio")
{
var v_name = document.getElementsByName(input.name);
for (var i = 0;i < v_name.length; i++)
{
if(v_name[i].getAttribute("notmatchclass",m_AttributeFlag) != null && v_name[i].getAttribute("notmatchclass",m_AttributeFlag) == v_name[i].className)
{
if(v_name[i].getAttribute("oldclassname",m_AttributeFlag) != null)
{
v_name[i].className = v_name[i].getAttribute("oldclassname");
}
else
{
v_name[i].className = "";
}
}
}
}
else
{
if(input.getAttribute("notmatchclass",m_AttributeFlag) != null && input.getAttribute("notmatchclass",m_AttributeFlag) == input.className)
{
if(input.getAttribute("oldclassname",m_AttributeFlag) != null)
{
input.className = input.getAttribute("oldclassname");
}
else
{
input.className = "";
}
}
}
}
/* 设置提示框的模式,考虑以后扩展 */
function chkAlert(msg)
{
if(m_Alert_Mode == "0")
{
alert(msg);
}
else
{
alert(msg);
}
}
/*客户端获取文件大小,返回值以字节为单位*/
function GetFileSize(filepath)
{
try
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var filesize = Math.round(fso.GetFile(filepath).Size);
return filesize; /*//chkAlert("文件大小为:" + filesize + "MB");*/
}
catch(e)
{
var err_no = e.number & 0xFFFF;
if(err_no==429)
{
chkAlert("浏览器设置受限,请按下面的步骤设置:" + "\n" + "1、控制面板 -> Internet选项 -> 安全 -> Internet -> 自定义级别 ->安全设置的 ActiveX 控件和插件 -> 对没有标记为安全的ActiveX 控件进行初始化和脚本运行 选中“启用”,并确定.\n2、控制面板 -> Internet选项 -> 安全 -> 本地 Intranet -> 自定义级别 ->安全设置的 ActiveX 控件和插件 -> 对没有标记为安全的ActiveX 控件进行初始化和脚本运行 选中“启用”,并确定. ");
}
}
}
/*终止客户端事件的继续执行*/
function CancelClientEvent()
{
/*//form1.onSubmit=false;//阻止表单Submit事件*/
if(window.event)
{
window.event.cancelBubble = true;
window.event.returnValue = false;
}
/*//else
//{
// event.stopPropagation();
// event.preventDefault();
//}
//m_form.submit=false;//阻止表单Submit事件*/
return false;
}
/* 指定验证输入框输入是否合法(单个弹出提示),不捕获焦点 */
function checkInputNoFocus(input)
{
clearNotMatchInputClass(input);
var v_msgtype=getMsgType();
setMsgType(1);//设置提示信息类型 1:单个弹出提示
if(input.getAttribute("ischeckinstant",m_AttributeFlag) != "false" )
{
if(!verifyInput(input))
{
setMsgType(v_msgtype);
return false;
}
}
setMsgType(v_msgtype);
return true;
}
/* 指定验证输入框输入是否合法(单个弹出提示),并剔除不能为空的判断,不捕获焦点 */
function checkInputExceptNullableNoFocus(input)
{
clearNotMatchInputClass(input);
var v_msgtype=getMsgType();
setMsgType(1);//设置提示信息类型 1:单个弹出提示
if(!verifyInputExceptNullable(input))
{
setMsgType(v_msgtype);
return false;
}
setMsgType(v_msgtype);
return true;
}
/* 指定验证输入框输入是否合法(单个弹出提示) */
function checkInput(input)
{
clearNotMatchInputClass(input);
var v_msgtype=getMsgType();
setMsgType(1);//设置提示信息类型 1:单个弹出提示
if(!verifyInput(input))
{
focusInput(input);
setMsgType(v_msgtype);
return false;
}
setMsgType(v_msgtype);
return true;
}
/* 指定验证输入框输入是否合法(单个弹出提示),并剔除不能为空的判断 */
function checkInputExceptNullable(input)
{
clearNotMatchInputClass(input);
var v_msgtype=getMsgType();
setMsgType(1);//设置提示信息类型 1:单个弹出提示
if(!verifyInputExceptNullable(input))
{
focusInput(input);
setMsgType(v_msgtype);
return false;
}
setMsgType(v_msgtype);
return true;
}
/* 获取验证控件顶端的相对位置 */
function getChkInputTop(input)
{
var v_temp = input.offsetTop;
var v_control = input.offsetParent;
while(v_control!=null)
{
v_temp = v_temp + v_control.offsetTop;
v_control = v_control.offsetParent;
}
return v_temp;
}
/* 获取验证控件左边的相对位置 */
function getChkInputLeft(input)
{
var v_temp = input.offsetLeft;
var v_control = input.offsetParent;
while(v_control!=null)
{
v_temp = v_temp + v_control.offsetLeft;
v_control = v_control.offsetParent;
}
return v_temp;
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lxchutao-ChkInputs.git
git@api.gitlife.ru:oschina-mirror/lxchutao-ChkInputs.git
oschina-mirror
lxchutao-ChkInputs
lxchutao-ChkInputs
master