ASP.NET 的 defaultbutton 作用

作者:vkvi 来源:ITPOW(原创) 日期:2008-1-3

继续 ASP.NET 如何知道我们点击了某个按钮一文,如果我们是在表单中的文本框中按下的回车键进行的提交,那么服务器端会不会认为是点击了某个提交按钮呢?

不会,服务器端不会认为你是点击了某个提交按钮,所有的提交按钮的 onclick 事件函数都得不到执行。

但是,微软也考虑到了默认按钮的情况,也即如果我们是按回车键提交,就当作是点击了某个按钮提交,这很有用,比如注册,用户可能不是点击的“注册”按钮,而是按回车键进行的提交,此时,我们也期望执行“注册”按钮对应的函数。

怎么做呢?

给 form 指明 defaultbutton 属性,其属性值是某个按钮的 id:

<form id="form1" runat="server" defaultbutton="btnReg">

究竟发生了什么变化呢?

打开客户端生成的网页,我们发生有如下代码:

<form name="form1" method="post" action="default.aspx" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'btnReg')" id="form1">

可以发现是在提交时增加了一个 javascript 函数,在没有点击按钮提交的情况下,用它来标明默认点击了某个按钮。

弊端

由于是 javascript 函数,所以需要客户端支持 javascript。

另外,如果是 javascript 函数执行的提交,比如 document.getElementById("form1").submit(); 是不会触发 form 表单的 onsubmit 事件的,默认按钮也就不起作用了。

相关阅读

相关文章