ASP.NET回车提交事件浅析

ASP.NET回车提交事件其实说到底并不是ASP.NET 的编程问题,却是关于html form 中的submit 按钮就是如何规划的具体讨论。 也可归于ASP.NET编程的一部分,那么ASP.NET回车提交事件的具体实现是怎么样的呢?下面我们具体的看下:
ASP.NET回车提交事件实现1、
当你的光标焦点进入某个表单元素的时候,会激活该表单中第一个(流布局顺从左到右,从上至下) type=submit 的按钮(假如有),等待响应回车事件,并提交该form
你可以测试一下代码:


代码如下:

﹤form action=""﹥
﹤input type="text" /﹥
﹤input type="submit" value="submit" /﹥
﹤/form﹥
﹤form action=""﹥
﹤input type="text" /﹥
﹤input type="button" value="submit" /﹥
﹤/form﹥

ASP.NET回车提交事件实现2.
在 ASP.NET 2.0 中 button 默认呈现为 ﹤input type=submit﹥ 此时不要额外脚本提交form ,submit 按钮就是设计用来提交form 而在 1.x 中则呈现为 ﹤input type=button onclick=_doPostBack(...) /﹥ 此普通 button 不具备 submit 的上述默认行为
ASP.NET回车提交事件实现3. 禁用此默认行为有法二
(1)设置 form 元素的 defualtButton 为你希望响应回车的真正按钮如下


代码如下:

﹤form id="form1"
runat="server"
defaultbutton="Button1"﹥

注意 defaultButton = ﹤ ﹤TargetButton.ID﹥﹥ 因此这对复合控件中比如模板的 Button 可能无效(未测试)
(2)修改 button 呈现方式 UseSubmitBehavior="false"


代码如下:

﹤asp:Button ID="Button1"
runat="server" Text="Button"
onclick="Button1_Click"
UseSubmitBehavior="false" /﹥

另外可以通过控制焦点的方式,过滤回车实践,需要记录一笔的是,获取当前页面焦点所在控件的ID:
document.activeElement
对于ASP.NET.我们在TextBox1中输入内容后,按下enter键后,就执行Button1的click方法。那么在page_load事件方法中写。


代码如下:

TextBox1.Attributes.Add("onkeydown",
"if(event.which || event.keyCode){
if ((event.which == 13) || (event.keyCode == 13)) {
document.getElementById('"+
Button1.UniqueID+"').click();return false;}}
else {return true}; ");

有ASP.NET里面用了form runat=server的表单的时候,里面的﹤asp:button .. 总不能按个回车提交表单,很是不爽。
现在终于发现了一个属性可以干这个事情,用 this.Form.DefaultButton = "ContentPlaceHolder1$btsubmit";
值得注意的是,如果用了masterPage(母板页),那么要在按钮ID前加上母板的ID:ContentPlaceHolderID和一个美元符($)
C#实现代码如下:


代码如下:

﹤%@ Page Language="C#"
MasterPageFile="~/MasterPage.master"
AutoEventWireup="true"
CodeFile="login.aspx.cs"
Inherits="login" %﹥
﹤asp:Content ID="Content1"
ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server"﹥
﹤asp:TextBox runat="server"
ID="wd" ﹥﹤/asp:TextBox﹥
﹤asp:Button ID="btsubmit"
runat="server" Text="提交"
OnClick="btsubmit_Click" /﹥
...........................
﹤/asp:Content﹥

(1)含母板页的类中:


代码如下:

protected void Page_Load(object sender, EventArgs e)
{
this.Form.DefaultButton = "ContentPlaceHolder1$btsubmit";
}

或者在内容页


代码如下:

protected void Page_Load(object sender, EventArgs e)
{
this.Page.Form.DefaultButton = "ContentPlaceHolder1$btsubmit";
}

(2)非母板页的类中:


代码如下:

protected void Page_Load(object sender, EventArgs e)
{
this.Form.DefaultButton = "btsubmit";
}

ASP.NET回车提交事件的具体情况就向你介绍到这里,希望对你了解和学习ASP.NET回车提交事件有所帮助。

(0)

相关推荐

  • asp.net ASPxTextBox等控件实现"回车模拟Tab"的 常用代码整理

    近期在做一个Web项目,我使用DevExpress第三方控件. 由于该控件使用技巧中文资料较少,还真够呛的,只能边摸索,边开发. 今天我要实现一些编辑框如ASPxTextBox.ASPxComboBox等控件回车模拟Tab的功能.这没办法,用户用惯了回车,讨厌按Tab来移动焦点(鼠标点击更麻烦). 以ASPxTextBox为例,在ClientSideEvents属性中可设置许多客户端JavaScript代码,其中KeyPress就是我要写的. 首先,得准备要模拟Tab的JS代码,这网上很多,我随

  • ASP.NET2.0使用Enter Key作为默认提交问题分析(附源码)

    本文实例分析了ASP.NET2.0使用Enter Key作为默认提交的方法.分享给大家供大家参考,具体如下: 网页开发中最烦人的事情之一就是为表单处理"Enter key" ,"Enter key"已经成为用户提交表单的偏好.虽然我们为用户提供了提交按钮,但是最简单也是最直接的方式仍然是:输入文字,然后回车完成提交 ASP.NET 2.0中为此提供了很好的解决方法.只需要将"defaultbutton"属性指定到想要引发事件的按钮控件的ID上就可

  • asp.net TextBox回车触发事件 图片在img显示

    TextBox回车触发事件 复制代码 代码如下: //直接在js中写 <script language="javascript"> function EnterTextBox() { if(event.keyCode == 13 && document.all["TextBox1"].value != "") { event.keyCode = 9; event.returnValue = false; documen

  • asp.net(c#)Enterprise Library 3.0 下载

    微软今天发布了Enterprise Library 3.0,又有新的东西可以研究了,在Enterprise Library 3.0中包含如下8个应用程序块: l         Caching Application Block l         Cryptography Application Block l         Data Access Application Block l         Exception Handling Application Block l      

  • ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)

    通过下面的代码可以实现这种切换的效果. 首先我们来看界面: 界面代码: 复制代码 代码如下: <body> <form id="form1" runat="server"> <div align="center"> <fieldset style="width: 400px; height: 200px;"> <table cellpadding="3"

  • asp.net textbox javascript实现enter与ctrl+enter互换 文本框发送消息与换行(类似于QQ)

    1.也许讲解有点初级,希望高手不要"喷"我,因为我知道并不是每一个人都是高手,我也怕高手们说我装13: 2.如有什么不对的地方,还希望大家指出,一定虚心学习,如果有更好的办法请告诉我一声哦: 3.本文属于作者原创,尊重他人劳动成果,转载请注明作者,谢谢. 下面开讲: 如题,这个功能也困扰了我一两天事件了,我也上网找了很多资料,但是网上大部分的说法都差不多,问题始终还是没解决,于是乎我开始找是问题的根源,我开始用的是文本框的onkeydown事件,分别写了两个js函数,如下: 复制代码

  • asp.net中绑定TextBox回车事件的解决方法

    1.将页面上的回车事件都绑定到按钮上 复制代码 代码如下: function EnterTextBox(e) { var msie = (document.all) ? true : false; var keycode; if(!msie) keycode = window.event ? e.keyCode : e.which; else keycode = e.keyCode; //alert(keycode); if(keycode==13 && document.getEleme

  • ASP.NET回车提交事件浅析

    ASP.NET回车提交事件其实说到底并不是ASP.NET 的编程问题,却是关于html form 中的submit 按钮就是如何规划的具体讨论. 也可归于ASP.NET编程的一部分,那么ASP.NET回车提交事件的具体实现是怎么样的呢?下面我们具体的看下: ASP.NET回车提交事件实现1. 当你的光标焦点进入某个表单元素的时候,会激活该表单中第一个(流布局顺从左到右,从上至下) type=submit 的按钮(假如有),等待响应回车事件,并提交该form 你可以测试一下代码: 复制代码 代码如

  • Textbox控件注册回车事件及触发按钮提交事件具体实现

    引子: 在ASP.Net页面中textbox的index为1(或n),其后的提交按钮index为2(n+1),光标在textbox中,回车后自动焦点移动到后面的button上,会触发button的点击事件. 但在Lyncplus客户端中访问Web页面时遇到了TextBox控件回车自动完成按钮的提交事件失效的情况(应该是自动切换焦点). 由于并且该服务端TextBox控件没有提供OnKeyPress或OnKeyDown等事件,也无法针对回车事件写后台代码来调用Button按钮的点击事件. 于是上网

  • 不同浏览器对回车提交表单的处理办法

    条件是: 在IE和Firefox下 1.<form>属性的"action"字段必填: 2.有一个type="submit"的"input". 在Chrome和Safari下 满足第一条即可.(注释1) 所以,如果要控制提交行为的话(比如,提交前检查必填项是否已填),可以在type="submit"的"input"后添加Javascript"onXXX(比如onClick)"事

  • js与jquery回车提交的方法

    本文实例讲述了js与jquery回车提交的方法.分享给大家供大家参考.具体如下: 1.JavaScript 方法: <script> document.onkeydown=function(event){ e = event ? event :(window.event ? window.event : null); if(e.keyCode==13){ //执行的方法 alert('回车检测到了'); } } </script> <script> document.o

  • JavaScript阻止回车提交表单的方法

    大家对回车键的功能应该比较熟悉,比如在windows系统的很多应用程序中,只要点击回车键就可以进入此程序或者开启某项功能,不过有时候我们希望阻止它的功能,例如在填写表单的时候,可能不小心点击回车键造成表单误提交,下面就来简单介绍一下如何实现此功能.代码实例如下: 如何防止回车(enter)键提交表单,其实很简单,就一句话.onkeydown="if(event.keyCode==13)return false;"把这句写在from标签里面就好了. <!DOCTYPE html&g

  • jquery按回车提交数据的代码示例

    其实jquery按回车提交数据是很简单的事情,我们只要检查测到用户按了回车就直接绑定事件.click就实现了提交了,在按钮上我们绑定ajax提交表单事件即可.核心代码  复制代码 代码如下: $(document).ready(function(){ $("按下回车的控件").keydown(function(e){ var curKey = e.which; if(curKey == 13){ $("#回车事件按钮控件").click(); return fals

  • Asp.NET页面中事件加载的先后顺序详解

    本文主要给大家介绍了关于Asp.NET页面事件加载先后顺序的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: ASP.NET 母版页和内容页中的事件 我们知道母版页和内容页都可以包含控件的事件处理程序.对于控件而言内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件.控件事件不会从内容页发送到母版页,也不能在内容页中处理来自母版页控件的事件,它们只会在自己事件内部进行处理. 下面是母版页(Master)与内容页(ContentPage)合并后事件的发生顺序:

  • jQuery Datatable 多个查询条件自定义提交事件(推荐)

    先写2个input 分别表示开始时间跟结束时间 在写一个button 点击按钮 让表格重新刷新 代码如下 如下所示在datatable设置项增加如下设置  如果已经有了  只需要添加如下的data选项 ajax: { url: '/admin/index', type: 'POST', "data": function ( d ) { //添加额外的参数传给服务器 d.beginDate = $("#datetimepicker1").val(); d.endDat

  • asp.net页面触发事件panel滚动条高度不变的实现方法

    此文是为解决asp.net页面按钮点击触发事件后panel滚动条非自动回到顶端的解决方案,对于页面触发一个事件后,panel滚动条重新回到顶端,做下面的工作每次都要往下拉一下,特别是选择TreeView的时候,这个问题非常头疼,受到this.MaintainScrollPositionOnPostBack = true;的启示有感而发. 原理是在点击时保存panel滚动条的位置,页面触发事件完成后加载时重新赋值.保证页面每次点击都保存,就包含所有的按钮和别的点击事件. 步骤: 1.脚本 <hea

随机推荐