今天遇到一個問題,搞的我丈2的和尚。問題如下:
頁面里面一個表單,一個文本框,沒有寫任何回車事件,但是點回車的時候,就會觸發回車,回傳頁面。
以為是事件冒泡,各種阻止,沒有用。
於是 寫了一個響應回車事件的方法。結果頁面會回傳兩次,(自己寫的方法回傳一次,不知道由來的響應回車事件,又讓頁面回傳一次)。
而且第二次回傳是在我第一次回傳之后。所以第一次回傳會被中止。也就是我自己寫的響應事件,是達不到預期效果的。這下問題就嚴重了。我想做的事,做不了。
於是各種google,終於有了結果:
- 如果表單里有一個type=”submit”的按鈕,回車鍵生效。
- 如果 表單里只有一個type=”text”的input,不管按鈕是什么type,回車鍵生效。
- 如果按鈕不是用input,而是用button,並且沒有加type,IE下默認為type=button,FX默認為 type=submit。
- 其他表單元素如textarea、select不影 響,radio checkbox不影響觸發規則,但本身在FX下會響應回車鍵,在IE下不響應。
- type=”image”的input,效果等同於type=”submit”,不知道為什么會設計這樣一種type,不推薦使用,應該用 CSS添加背景圖合適些。
這五點是引用別人的原話,說的很明了。我的就是第二點。跟js沒有關系,僅是瀏覽器默認的一些規則而矣。
所以,一下次,如果你的頁面也只有一個“text”(一般是搜索頁面),如果也想寫回車事件的話,就要注意了。
其實像這種問題,解決辦法很變態,我是在頁面里面放一個隱藏的“text”。
