回車自動提交 禁止回車自動提交 web開發 .


在開發過程中有時候需要回車自動提交,有時候有不不需要回車自動提交。很多人都喜歡用JS控制,但是用jS控制並不穩定

 

其實瀏覽器已經幫我們做好了這一步。在網上找到了解答,如下。

 

 

今天遇到一個很變態的問題,由於一個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

 

 

這段是針對ASP.NET開發的

1.
深層次來說這不是 ASP.NET 的問題, 而是 html form 的 submit 按鈕就是如何設計的。
當你的光標焦點進入某個表單元素的時候,會激活該表單中第一個(流布局順從左到右,從上至下) type=submit 的按鈕(假如有),等待響應回車事件,並提交該form
你可以測試一下代碼:
<form action="">
<input type="text" />
<input type="submit" value="submit" />
</form>
<form action="">
<input type="text" />
<input type="button" value="submit" />
</form>
2.
在 ASP.NET 2.0 中 button 默認呈現為 <input type=submit> 此時不要額外腳本提交form ,submit 按鈕就是設計用來提交form
而在 1.x 中則呈現為 <input type=button onclick=_doPostBack(...) /> 此普通 button 不具備 submit 的上述默認行為
3.
禁用此默認行為有法二
1.
設置 form 元素的 defualtButton 為你希望響應回車的真正按鈕如下
<form id="form1" runat="server" defaultbutton="Button1">
注意 defaultButton = < <TargetButton.ID>> 因此這對復合控件中比如模板的 Button 可能無效(未測試)
2.
修改 button 呈現方式 UseSubmitBehavior="false"
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" UseSubmitBehavior="false" />
(csdn 曉風殘月)

 

另外可以通過控制焦點的方式,過濾回車實踐,需要記錄一筆的是,獲取當前頁面焦點所在控件的ID:

document.activeElement

 

對於Asp.Net.我們在TextBox1中輸入內容后,按下enter鍵后,就執行Button1的click方法。那么在page_load事件方法中寫。

TextBox1.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById('"+Button1.UniqueID+"').click();return false;}} else {return true}; ");

 

 

轉載:http://www.cnblogs.com/guojin705/archive/2009/05/03/1448283.html 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM