斷行符號鍵觸發表單提交的問題

來源:互聯網
上載者:User

我們有時候希望斷行符號鍵敲在文字框(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 列出了一些例子。

運行代碼框
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><title>submit</title></head><body><h1>本demo示範在文字框中按enter鍵是否觸發提交表單</h1><h2>預設情況下,一個文字框的時候,提交,不管按鈕type是submit還是button</h2><form action="http://www.koubei.com"><input type="text"><input type="button" value="提交"></form><h2>一個文字框的時候怎麼才能做到不提交,方法是加一個隱藏掉的文字框</h2><form action="http://www.koubei.com"><input type="text"><input type="text" style="display:none"><input type="button" value="提交"></form><h2>只要有type為submit的按鈕存在,一個文字框還是多個文字框都提交</h2><form action="http://www.koubei.com"><input type="text"><input type="submit" value="提交"></form><h2>只要有type為submit的按鈕存在,一個文字框還是多個文字框都提交</h2><form action="http://www.koubei.com"><input type="text"><input type="text"><input type="submit" value="提交"></form><h2>多個文字框的時候,不提交,用type為button的按鈕就行啦</h2><form action="http://www.koubei.com"><input type="text"><input type="text"><input type="button" value="提交"></form><h2>用button元素時,FX和IE下有不同的表現</h2><form action="http://www.koubei.com"><input type="text"><input type="text"><button>提交</button></form><h2>radio和checkbox在FX下也會觸發提交表單,在IE下不會</h2><form action="http://www.koubei.com"><input type="text"><input type="radio" name="a"><input type="checkbox" name="b"><input type="checkbox" name="c"><input type="button" value="提交"></form><h2>type為image的按鈕,等同於type為submit的效果</h2><form action="http://www.koubei.com"><input type="text"><input type="text"><input type="image" src=http://www.webjx.com/web/"http://k.kbcdn.com/images/common/logo_yahookoubei_s.gif"></form></body></html>
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。