我是靠谱客的博主 爱听歌山水,最近开发中收集的这篇文章主要介绍控制网页中的回车键,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一,

控制在网页输入回车后的动作:
Javascript提供了捕获客户端键盘时间的处理,灵活使用可以让客户的使用感觉更加舒服和顺手.
首先  为需要处理键盘事件的控间加上onkeydown的事件处理
如,在文本输入筐控间中输入
<input type="id="txt"nkeydown="enterkey()">
enter()即为处理键盘输入的函数,在其中输入你想要的处理就好了
一个例子:
<html>
<head>
<script language="javascript">
function enterkey()
{
     try
 {var el_keydown=window.event.srcelement;
if(event.keyCode==13&&el_keydown.type=="text")
{
       BT_OK2.FOCUS():
}
              
                 }
      catch(e)
      {returu:}
          }
<?script>
</head>
<body><input type="tet"id="txt"οnkeydοwn="enterkey();">
<input type="button" lue+"ok1"id="bt_ok1" onlike="alert('点击了第一个按钮')">
<input type="button"value="ok2"id="bt_ok2"onlike="alert(txt.value)">
</html>
要求注意的是onkeydown是只要在控间中按下键盘就会触发,所以要过滤,实现专门捕获回车的是:
if(event.keyCode==13&&el_keydown.type=="text")并且还判断了是否来字文本框的回车。


附带keyCode的键盘编码对照表
左方向键     37
右           39
上           38
下           40
回车         13
空格         32
BackSpace    8
ctrl          17
shift        16
Tap          9
二,

思路:当onkeydown的时候,把焦点移动到需触发事件的控件上。

在CS页面对需要处理敲回车的控件添加:TextBox5.Attributes.Add("onKeydown","key();");

//TextBox5是我想在其中录入数据后敲回车能触发事件的录入框。

在aspx页面添加:

Button2的click事件是我想按回车后触发的事件。
三,

解决 ASP.NET 中文本框上按回车时系统缺省提交按钮的问题

Posted on 2004-12-21 03:39 netUFO 阅读(1680) 评论(3)   编辑  收藏 收藏至365Key 所属分类: .NET 开发 79841.html?webview=1
ASP.NET 中由于一个页面只有 Form ,经常碰到的一个问题是当在一个文本框中按回车后确不知哪个按钮被当成提交按钮提交了,非常郁闷!!!特别是在有用户控件时,搞得都不敢用 Validator 。
今天实在任不住把它搞定,其实也不麻烦。
基本思路:
自己写一个控件继承 TextBox,增加一个 SubmitControl 属性用来指定此文本框上按回车时由哪个按钮来响应。
再做一个 Converter 增加设计时支持,就是在设计时可以用下拉框选择提交按钮。
目前只考虑了  Button、LinkButton和ImageButton作为提交按钮,当然继承它们的控件也可以。

代码很少,就直接贴在这儿了。
http://www.cnblogs.com/netufo/archive/2004/12/21/79841.html
四,
由于asp.net里面的button都是submit类型的,所以在表单内按回车都是触发的第一个按钮的click事件,如果有多个button则无法在回车的时候触发后面的按钮事件。以下方案可通过设置来改变页面的默认按钮。

1.在基页面内的load事件里加入supportDefaultButton()

2.基页面中声明变量:
Protected DefaultButton As Button

3.在基页面中加入函数supportDefaultButton并重载RaisePostBackEvent
expandedblockstart.gif contractedblock.gif      Private   Sub supportDefaultButton() Sub supportDefaultButton()
inblock.gif        GetPostBackEventReference(
New System.Web.UI.Control)
inblock.gif        RegisterStartupScript(
"DefaultButton""<script language='javascript' src='/js/DefaultButton.js'></script>")
expandedblockend.gif    
End Sub

none.gif
expandedblockstart.gifcontractedblock.gif    
Protected   Overloads   Overrides   Sub RaisePostBackEvent() Sub RaisePostBackEvent(ByVal sourceControl As System.Web.UI.IPostBackEventHandler, ByVal eventArgument As String)
inblock.gif        
If (DefaultButton Is Nothing OrElse Request("__EVENTTARGET"<> ""Then
inblock.gif            
MyBase.RaisePostBackEvent(sourceControl, eventArgument)
inblock.gif        
ElseIf (Not DefaultButton Is NothingThen
inblock.gif            
MyBase.RaisePostBackEvent(DirectCast(DefaultButton, System.Web.UI.IPostBackEventHandler), Nothing)
inblock.gif        
End If
expandedblockend.gif    
End Sub

4.DefaultButton.js文件内容:
none.gif for (i = 0 ;i < Form1.elements.length;i ++ )
none.gif{
none.gif    
if (Form1.elements[i].type  ==   " submit " )
none.gif    {
none.gif        fstsubmit 
=  Form1.elements[i]
none.gif        fstsubmit.attachEvent(
" onmouseup " , changeEvent)
none.gif        //
break ; 这一句应该去掉
none.gif    }
none.gif}
none.gif
function  changeEvent()
none.gif{
none.gif    __doPostBack(event.srcElement.id, '')
none.gif}

在继承页面的load事件里:
5.DefaultButton = 需要设置为默认按钮的对象名称
即可。


IE6里面测试通过,低版本没有测试,但应该没问题。有兴趣的朋友可以帮忙测试一下兼容性,顺便告知。要是有更好的办法,也请给个链接看看。


这个方法不错,只是怎么觉得前台的脚本不加也可阿

把我解决方案给大家看看
/// <summary>
/// 设置在页面回车时触发事件的控件
/// </summary>
/// <param name="Ctrl">将触发事件的控件对象</param>
public static void SetEnterControl(System.Web.UI.Control Ctrl)
{
Page mPage = Ctrl.Page;
string mScript;
mScript = @"<script language=""javascript"">
function document.onkeydown()
{
var e = event.srcElement;
var k = event.keyCode;
if (k == 13 && e.type != ""textarea"")
{
document.all." + Ctrl.ClientID + @".click();
event.cancelBubble = true;
event.returnValue = false;
}
}
</script>";
if(!mPage.IsClientScriptBlockRegistered("SetEnterControl"))
mPage.RegisterClientScriptBlock("SetEnterControl",mScript);
}

转载于:https://www.cnblogs.com/sutengcn/archive/2005/11/07/270427.html

最后

以上就是爱听歌山水为你收集整理的控制网页中的回车键的全部内容,希望文章能够帮你解决控制网页中的回车键所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部