|
做网页经常要和JavaScript打交道,经常要用JavaScript做一些客户端的验证,但是如果我们的按钮用的是HTML控件的话,验证通过后无法调用后台代码,如果用服务器端控件,验证不通过有要刷新页面,这个有时候挺烦人的,能不能让服务器段的按钮调用客户端的验证,如果验证成功后在调用服务器端的方法,这样既减少了网路传输,给用户感觉也好。 当我们用模板列做删除数据的时候一般都会返回一个对话框询问用户是否确认,其实我们是通过修改模板列里的button的OnClientClick属性将其值设为 return confirm("你确认删除该条记录吗"); 我们可以分析一下,confirm返回的是个bool值,如果我的button返回的结果也是个bool应该也可以吧,我猜对了,比如有下面一些代码 function judgeUserInput() { bool result = true; if(验证未通过) { result = false; alert("请检查您的输入是否正确"); } return result; } 那么我们把button OnClientClick设置成 return judgeUserInput();就可以了! Feedback # re: OnClientClick的妙用! 回复 更多评论 2007-04-26 00:22 by gakaki function validion(regex,elementName,alertStr) { var htmlObj = document.getElementById(elementName); if( htmlObj.value!="" ) { if(regex.test(htmlObj.value)) { return true; } else{alert(alertStr); return false; } } if( htmlObj.value=="") { return true; }
} # re: OnClientClick的妙用! 回复 更多评论 2007-04-26 00:25 by gakaki 然后调用的时候在PageLoad里写 给Btn.Attributes.add("onclick","return 函数名"); js代码段里写 function 函数名() { if(!validion( /^((((1[6-9] [2-9]\d)\d{2})-(0?[13578] 1[02])-(0?[1-9] [12]\d 3[01])) (((1[6-9] [2-9]\d)\d{2})-(0?[13456789] 1[012])-(0?[1-9] [12]\d 30)) (((1[6-9] [2-9]\d)\d{2})-0?2-(0?[1-9] 1\d 2[0-8])) (((1[6-9] [2-9]\d)(0[48] [2468][048] [13579][26]) ((16 [2468][048] [3579][26])00))-0?2-29-))$/ ,"calendar_CO_time","签约时间 格式不正确") ) { return false; } }
|