asp.net webform中submit按钮使用不当很容易犯的一个错误

简介: webform中默认一个页面只能有一个form,有时submit按钮使用不当会产生一些奇怪的问题。 比如这是一个网站的头部搜索部分,前端人员把“搜索”按钮用处理,然后在js中文本框里按下回车键时,自动调用doSearch()函数,该函数可能类似下面这样:(只是表达一下大概的意思) function doSearch(){   window.

webform中默认一个页面只能有一个form,有时submit按钮使用不当会产生一些奇怪的问题。

img_93fc93d43426e91839dd771647db87f9.jpg

比如这是一个网站的头部搜索部分,前端人员把“搜索”按钮用<input type="submit" />处理,然后在js中文本框里按下回车键时,自动调用doSearch()函数,该函数可能类似下面这样:(只是表达一下大概的意思)

function doSearch(){

  window.location="search.aspx?w=abc";

  return false; 

}

“搜索”按钮的click事件中,用类似 onClick="doSearch()"来处理,本来这样处理也没什么不对,不管是在文本框中按下回车,还是点击“搜索”按钮都是ok的。但是如果遇到下面的情况,且二部分功能是不同的程序员来写时,就可能出问题:

img_ede1565c8c01f7efc2c232742c977a31.jpg

另一个前端开发人员把“登录模块”加进来以后(注:“登录”按钮用的是服务端Button控件,即最终在html中也是submit按钮,单独点击“登录”按钮时,一切正常),但是在一个form中,在任何一个文本框上按下回车键时,相当于默认点击了第一个submit按钮(即提交表单),这样在登录过程中,当用户输入完邮箱、密码、验证码,按下回车键的时候,实际上会触发“搜索”按钮的click行为,而搜索按钮在上面的处理中,调用的是doSearch()方法,最终页面会引导到搜索页上,并未按原来的意图提交,导致登录不了。

“各自单独的模块”独立测试时都是正常的,但是整合在一起就容易出问题了,所以说这种错误容易犯,我的建议是对于webform中的开发,不是必须要submit的场景,尽量避免用submit按钮。

目录
相关文章
|
.NET Unix Linux
在树莓派上借助Mono + Jexus 布署 .Net 4.0 WebForm应用
介绍 树莓派 树莓派是一种微型电脑,不到300元的成本就可以拥有一个4核1G的低功耗Linux环境,并且自带了40针IO,HDMI,WIFI,USB,100M网卡,SPI显示屏接口。
2251 0
|
前端开发 .NET 开发框架
|
Web App开发 JavaScript 前端开发
asp.net 中点击按钮弹出模式对话框,选择值后返回到页面中(window.showModalDialog实现)
现从事专业                                 function OpenWin(width, height) {            var me;            // 把父页面窗口对象当作参数传递到对话框中,以便对话框操纵父页自动刷新。
1546 0
|
JavaScript .NET 开发框架
asp.net 程序,单击按钮时 同时实现打开页面并处理值
来源:http://blog.csdn.net/nvhaixx/article/details/12430757   1)在网页中添加用于处理的客户端事件:   1 2 function doSearchClick() 3 { 4 window.
793 0
|
JavaScript .NET 开发框架
在asp.net中,如何回车触发指定按钮的事件?
在.aspx页面中添加:function SubmitKeyClick(button) {     if (event.keyCode == 13)  {          event.keyCode=9;  event.
607 0