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元素的defaultButton為你希望響應斷行符號的真正按鈕如下。
<form id ="form1" runat="server" defaultbutton="Button1">
注意 defaultButton = < <TargetButtonID>> 因此這對符合控制項匯總比如模板的button可能無效。
2 修改button呈現方式UseSubmitBehavior="false"
<asp:Button ID="Button1" runat="server" text="Button" onclick="Button1_Click" UseSubmitBehavior="false" />
另外可以通過控制焦點的方式,過濾斷行符號實踐,需要記錄一筆的是,擷取當前頁面焦點所子啊控制項的ID
document.activeElement
對於asp.net 我們在textbox 中輸入內容後,按下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};");
$(document).ready(function({$(":text").keypress(function(){if(e.keycode==13){$(" : input").unbind("click");$("#b").fuous();$("#b").click()}});});