冯东的博客

每天学一点,不断进取
posts - 76, comments - 269, trackbacks - 7, articles - 4
  博客园 :: 首页 :: 新随笔 ::  :: 订阅 订阅 :: 管理

OnClientClick的妙用!

Posted on 2007-04-25 21:00 冯东 阅读(2470) 评论(4)  编辑 收藏 网摘 所属分类: ASP.NET/C#
         做网页经常要和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

#1楼    回复  引用    

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;
}


}

#2楼    回复  引用    

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;
}
}

#3楼 [楼主]   回复  引用  查看    

2007-04-26 08:25 by 冯东      
@gakaki
Asp.Net1.1的时候是的需要你这样做,但是2.0你写好了JS后修改OnClientClick属性就可以了

#4楼    回复  引用    

2007-11-12 14:08 by anyqu [未注册用户]
请问你的站点地图怎么做的?

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: