ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在DNN中处理回车键事件

在DNN中处理回车键事件

原创 Linux操作系统 作者:DNN技术专区博客 时间:2008-08-05 14:18:52 0 删除 编辑
 
一般来说, "回车键"事件是完成输入工作后提交数据或输入关键字后回车进行搜索的情况下会进行激发。不管在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. }  
一定要取消回车键的默认操作,否则默认的按钮还会在执行了button按钮后继续执行。如此就得不到需要的效果. Enjoy your dnnsun journey!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15040802/viewspace-419031/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-01

最新文章