回車自動提交,禁止回車自動提交

 
今天遇到一個很變態的問題,由於一個input框要用suggest ,會用到回車事件。
但是在一個form裏面,按回車的時候我的form自動提交了,我靠,怎麼改動不行。

把submit改成button,也不行。蛋蛋的,看樣子是自動執行了form.submit()

結果從網上得到某位大俠的文章,搞定,特立此文留念。原文如下:


我們有時候希望回車鍵敲在文本框(input element)裏來提交表單(form),但有時候又不希望如此。比如搜索行爲,希望輸入完關鍵詞之後直接按回車鍵立即提交表單,而有些複雜表單,可能要避免回車鍵誤操作在未完成表單填寫的時候就觸發了表單提交。

要控制這些行爲,不需要藉助JS,瀏覽器已經幫我們做了這些處理,這裏總結幾條規則:

  1. 如果表單裏有一個type="submit"的按鈕,回車鍵生效。
  2. 如果表單裏只有一個type="text"的input,不管按鈕是什麼type,回車鍵生效。
  3. 如果按鈕不是用input,而是用button,並且沒有加type,IE下默認爲type=button,FX默認爲type=submit。
  4. 其他表單元素如textarea、select不影響,radio checkbox不影響觸發規則,但本身在FX下會響應回車鍵,在IE下不響應。
  5. type="image"的input,效果等同於type="submit",不知道爲什麼會設計這樣一種type,不推薦使用,應該用CSS添加背景圖合適些。

實際應用的時候,要讓表單響應回車鍵很容易,保證表單裏有個type=”submit”的按鈕就行。而當只有一個文本框又不希望響應回車鍵怎麼辦呢?我的方法有點彆扭,就是再寫一個無意義的文本框,隱藏起來。根據第3條規則,我們在用button的時候,儘量顯式聲明type以使瀏覽器表現一致。

這個位高人還留下來一個 demo (點擊查看) 列出了一些例子。

轉載: http://shake863.javaeye.com/blog/363809

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章