2010-02-02 20 views
5

Có đầu cào thực ở đây: Tôi có một trang có nhiều điều khiển trên đó và một nút ASP: Nút hoặc hai. Khi tôi kiểm soát, và nhấn phím Enter, nó hoạt động như tôi đã nhấp vào nút gửi, mà tôi không thực sự muốn làm vào thời điểm này.Nhập nút kích hoạt khóa nhấp - nhưng tôi không muốn nó ở số

Nút không nằm trong ASP: Bảng điều khiển có bộ DefaultButton, nó không có thuộc tính OnClientClick, tôi không thể thấy JavaScript nào đồng hồ cho phím Enter ... Tại sao nó lại kích hoạt?

Nếu tôi tạo trang .ASPX chuẩn và đặt hộp văn bản và nút trên đó, hãy chạy và nhấn phím enter, nút bị bỏ qua, ví dụ: sự kiện nhấp chuột không kích hoạt. Đây là hành vi tôi mong đợi, nhưng tôi không nhận được.

Tóm lại, điều gì khác có thể khiến nút nghĩ rằng đó là nút mặc định cho trang?

Cảm ơn bạn,

Mike K.


Ok, đây là đánh dấu trang thử nghiệm của tôi:

<p><asp:Label ID="uxNameL" runat="server" AssociatedControlID="uxName">Name</asp:Label><asp:TextBox ID="uxName" runat="server"></asp:TextBox></p> 
<p><asp:Button id="uxSubmit" runat="server" Text="Submit" onclick="uxSubmit_Click" /></p> 
<asp:Literal ID="uxOut" runat="server" EnableViewState="false"></asp:Literal> 

Dưới đây là những gì xảy ra trong mã:

protected void uxSubmit_Click(object sender, EventArgs e) 
    { 
     uxOut.Text = uxName.Text; 
    } 

Khi Tôi chạy trang và nhập một số văn bản trong hộp văn bản và nhấn Enter - ha, bạn sẽ xem xét điều đó: Trong IE 8, sự kiện nút bị bỏ qua, ví dụ: trang chỉ tải lại, nhưng trong FF, nó sẽ gửi biểu mẫu ...

Hmmmmm.

Trả lời

8

Tôi tin (và cần sửa), nhưng nếu bạn có biểu mẫu, với nút nhập loại gửi, khi bạn nhấn enter, nó sẽ kích hoạt nút đó.

+0

Trang thử nghiệm mà tôi thiết lập cũng phát ra , tuy nhiên điều đó không kích hoạt nút gửi: -s –

+0

Vui lòng xem câu trả lời của riêng tôi về sự khác biệt trong IE8 và FF ... Lạ lùng nhất. –

1

Tôi thực sự đã cố gắng phát trong Firebug ngay và có vẻ như đây là hành vi trình duyệt chuẩn, tức là không có gì liên quan đến javascript hoặc ASP. Nếu bạn đã gửi nút và một hộp văn bản thì nó chỉ đơn giản được gửi khi nhập. Thay đổi loại đầu vào thành nút để tránh nó.

+0

Xin vui lòng xem câu trả lời của riêng tôi cho sự khác biệt trong IE8 và FF ... Lạ lùng nhất. –

4

Nếu bạn không muốn phím enter để kích hoạt, có thể bạn có thể thêm này js mã vào trang của bạn:

if (window.event.keyCode == 13) 
{ 
    event.returnValue=false; 
    event.cancel = true; 
} 

Bạn cần phải gọi hàm này với các handler onKeyDown trên thẻ <body> của bạn trang.

0

) HTML code:

<form method="post" action="add_data.php" id="master_form"> 
<input type='text' name='user-mail' /> 
<input type="button" value="Submit" onclick="submitform();" /> 
</form> 

mã javascript:

function submitform() 
{ 
document.getElementById('master_form').submit(); 
} 
13

Thường

<asp:Button ID="button" UseSubmitBehavior="false"/> 

công trình. Nhưng bạn có thể phải vô hiệu hóa backspace trong ứng dụng của bạn mà sẽ đưa bạn trở lại 1 trang trong lịch sử gần đây của bạn.

+1

Tôi nghĩ cũng quan trọng cần lưu ý rằng nếu bạn sử dụng 'UseSubmitBehavior =" false "', nó sẽ không chỉ ngăn nó phản hồi nút enter, nhưng nó sẽ dừng sự kiện click button khi được nâng lên trong đoạn code phía sau khi bạn nhấp vào nút, có thể không phải là hậu quả dự định. – Hawkeye

Các vấn đề liên quan