由验证控件引起的IE的超级爆笑BUG
生活随笔
收集整理的這篇文章主要介紹了
由验证控件引起的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如果爆笑
轉載于:https://www.cnblogs.com/dingxue/archive/2007/03/22/683401.html
總結
以上是生活随笔為你收集整理的由验证控件引起的IE的超级爆笑BUG的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语句摘抄——第10周
- 下一篇: 逻辑思维语音01——麦当劳