一个奇怪的asp.net回车键提交问题


vs2005 + IE 6.0以上浏览器
---------------------------------
界面如图所示


代码:


 

  1. //命名空间引用略去
  2. public partial class _Default : System.Web.UI.Page 
  3. {
  4.     protected void Page_Load(object sender, EventArgs e)
  5.     {
  6.         TextBox1.Focus();
  7.     }
  8.    
  9.     protected void Button1_Click1(object sender, EventArgs e)
  10.     {    
  11.         Button1.Text = "fff";
  12.     }
  13. }

可以看出,非常的简单


目的就是按下提交按钮后,显示一串文字


好,让我们看看实际的运行效果,点下按钮,很正常,按钮的文字被简单替换掉,如图

好象一切都很正常!

 

可是如果我们按的是回车键,则功能被没有执行!

 

但从状态条上可以知道,页面数据是被回传的


如果在Form_Load里设下断点,可以看得出来,它是有进入的,说明成功提交了


但如果在Button1_Click上设断点,可以看到,并没有进入,自然也就没有引发点击事件

 

------------------------------------------------------------------------------

好,如果上面的说法你不以为然的话,那么我们接着看

 

我随便放了一个TextBox(甚至只放一个input的 text标记都可以,注意,图中所示)

 

不用编辑任何代码

重新运行...

 

直接按回车,状态栏一闪而过

呵,这回却能正确的被替换了文字,如图所示

未改动任何代码,仅仅只是加了一个input text 效果就变化这么大,不知道是IE还是asp.net类的问题

 

因为手头没有别的浏览器,所以没有在别的上面做过测试


但用HttpWatch软件可以看出,前后两次提交数据上的有区别

第一次 中 并没有出现  button=

   第二次却有,虽然value并没有值,但似乎这句话的出现导致的结果却有很大差异

 

--------------------------------------------------------------------------------------------------------------------------------------------

补充:

  经过安装FireFox,发现它却可以正确的完成功能,所以结论:

 

    应该是IE无法正确的产生回发的数据,如button=,从而导致服务器页无法正确的处理按钮click事件


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值