由验证控件引起的IE的超级爆笑BUG

在VS中建立一个网站,在网站里新建一个页面,在页面添加两个文件框,一个RegularExpressionValidator验证控件,再写几行字,好戏开演,哈哈(body部分的代码如下):

< body >
    
< form  id ="form1"  runat ="server" >
    
< div  style ="width:400px;" >
        
< asp:TextBox  ID ="TextBox1"  runat ="server" ></ asp:TextBox >
        
< asp:RegularExpressionValidator  ID ="RegularExpressionValidator1"  runat ="server"  
        ControlToValidate
="TextBox1"  Display ="Dynamic"  
        ErrorMessage
="这一行是RegularExpressionValidator的错误提示"  
        ValidationExpression
="/d+" ></ asp:RegularExpressionValidator >
        
< br  />
        看看这行能不能不删除
< br  />
        
< asp:TextBox  ID ="TextBox2"  runat ="server" ></ asp:TextBox >
    
</ div >
    
</ form >
</ body >
简单到不能再简单了,对不?需要注意两点:外面一个DIV的宽度要是400px,可以调整,但不能太宽,一会儿你就明白原因了,RegularExpressionValidator限制TextBox1只能输出数字,一会儿要输入字母以触发验证控件。
好了,现在按下F5开始运行,在TextBox1中随便输出字母,只要能触发验证控件就可以了,然后就鼠标点击TextBox2以期望移动焦点到TextBox2,一定要用鼠标,键盘的Tab键不好用的。
然后,你发现了什么?焦点在哪里?对,没有错,就是在“看看这行能不能删除”的后面,不在文本框里啊,更搞笑的是你这时候按Backspace键,居然能把这行字删除,然后你可以继续往前删除,RegularExpressionValidator的提示,甚至TextBox1本身都可以从页面中删除。原来当验证控件的提示出来后因为太长而折行了,下面的文本框被向下挤了一行,IE判断焦点不是控件属性?而是用页面上的坐标?
眼镜掉到地上了吧?呵呵,不知道IE内核咋搞的,IE6、IE7还有用IE内核的一些其他浏览器,都可以重现这个BUG,但非IE内核的比如FF就没有这个问题
查看了一下生成到页面的源代码,JS太长没有时间看,有时间再研究下到底是什么原因导致IE如果爆笑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值