在DNN中处理回车键事件

 
一般来说, "回车键"事件是完成输入工作后提交数据或输入关键字后回车进行搜索的情况下会进行激发。不管在DNN还是一般的BS程序, 我们都会碰到点击回车键"Enter"激发事件的情况, 但是有时我们在同一个页面可能同时存在多个通过回车键提交表单时执行特定的button按钮事件, 这样情况如何处理呢?我们知道Asp.Net 2.0存在一特性, 那就是每个form. 或 panel都有一个属性defaultbutton负责回车键"Enter"激发事件, 也就是说你可以设置这一属性来控制你所响应的键盘回车动作, 然而这一属性在Firefox不起作用, 故此我们还得寻找另外的方法. 搜索一下, 似乎存在通过脚本注册的方法可以解决, 同时联想到DNN登陆模块似乎存在这一机制, 研究一番, 原来ClientAPI辅助类有一方法RegisterKeyCapture可以保证当前页面回车键提交表单的目标控件, 故在此共享一下两种解决方案:
1) DNN RegisterKeyCapture方式
 
  1. '注册按钮btnSearch为当前页面回车键提交表单的目标控件, Asc(vbCr)对应就是回车键的ASCII码, 也就是 13, 故你也可以直接设置这一参数为13.   
  2. DotNetNuke.UI.Utilities.ClientAPI.RegisterKeyCapture(Me.Parent, Me.btnSearch, Asc(vbCr))  
2) 注册脚本方式
<1>服务器控件:
 
  1. txtSearch.Attributes.Add("onkeypress""if (event.keyCode == 13) {document.forms[0]." & btnSearch.ClientID & ".click();event.keyCode = 0; return false;}")  
<2>客户端控件:
 
  1. $addHandler(searchBox, 'keydown', Function.createDelegate(this, onKeydown));   
  2. $addHandler(anotherSearchBox, 'keydown', Function.createDelegate(this,onKeydown));    
  3.   
  4. function onKeydown(e){   
  5.     if(e.keyCode == 13){   
  6.         yourFunction(); //onPopOk(e);   
  7.         e.preventDefault();   
  8.         return false;   
  9.     }   
  10.     return true;   
  11. }  

转载于:http://blog.itpub.net/15040802/viewspace-419031/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值