日期:2014-05-16  浏览次数:20326 次

一个关于javascript的问题,请求高手帮忙
我写了一个页面,基本上都是textbox控件,我想让焦点在一个textbox移到另一个textbox上时检验textbox的值不能为空。但是现在在检验过程中碰到死循环,有一本书上说有两种解决办法,其中一种这么写:

不要为所有与都写同一个时间处理函数,而是设置一个内嵌的处理程序把所有的代码放到时间处理程序的设置属性里则有一个例子:
<input   type= "text "   name= "field2 "   onBlur= "if   (this.value   ==   ' ')   {alert( 'enter   a   value ');   this.focus()} ">

但是我修改了以后还是不行(代码片断如下):


<asp:textbox   BackColor= "#EBEBEB "   BorderStyle= "inset "   style= "height:   12px;width:   160px;font-family:   Arial,   Verdana,   Tahoma,   Sans-Serif;font-size:   12px;vertical-align:   middle;margin-left:   5px;padding-top:   4px;padding-left:   2px;border:1px   solid   #7287c6; "   id= "vendor "   runat= "server "   onFocus=this.select()   onMouseOver=this.focus()/>


<asp:textbox   runat= "server "   BackColor= "#EBEBEB "   Columns= "8 "   id= "cdate "   cssclass= "tb1 "   onFocus=this.select()   onMouseOver=this.focus()   onBlur= "if   (this.value== ' ')   {alert( '不能为空 ');   this.focus()} "/>


<asp:textbox   runat= "server "   BackColor= "#EBEBEB "   Columns= "8 "   id= "lastm "   cssclass= "tb1 "   onFocus=this.select()   onMouseOver=this.focus()   onBlur= "if   (this.value== ' ')   {alert( '不能为空 ');   this.focus()} "/>


------解决方案--------------------
你把页面在浏览器里另存下来,看看是否正常运行。
------解决方案--------------------
function isBlankOrNull(str) {
return str == null || str.length == 0;
}
/*
function doResetFocus() {
if (gFoucsObjIndex < 0) {
var obj = document.getElementById(gFoucsObjNm);
if (obj != null && obj.disabled != true) {
obj.focus();
}
} else {
var objs = document.getElementsByName(gFoucsObjNm);
if (objs != null && objs[gFoucsObjIndex] != null && objs[gFoucsObjIndex].disabled != true) {
objs[gFoucsObjIndex].focus();
}
}
}
自己添加变量设置---JS出现三层将会出现内存消耗的问题。

剩下的事情自己整!


------解决方案--------------------
提示不一定非要alert啊,你看.net验证控件的提示是什么样子的~