2008-10-16 30 views
6

Tôi có một số textbox có đầu vào đang được xử lý bởi jQuery.Tôi có thể hủy đăng lại khi người dùng nhấn trở lại trong hộp văn bản không?

$('input.Search').bind("keyup", updateSearchTextbox); 

Khi tôi nhấn Enter trong hộp văn bản, tôi nhận được một postback, làm mọi thứ rối tung lên. Làm thế nào tôi có thể bẫy rằng Enter và bỏ qua nó?

(Chỉ cần để chặn trước một gợi ý tốt: Các hộp phải có một <asp:textbox ... /> - Tôi không thể thay thế nó bằng một <input ... />.)

Trả lời

13

Trình duyệt của bạn sẽ tự động được gửi biểu mẫu khi bạn nhấn enter. Để hủy bỏ điều này, thêm trả về false vào hàm updateSearchTextBox của bạn.

nếu điều đó không làm việc, hãy thử này:

<script language="JavaScript"> 

function disableEnterKey(e) 
{ 
    var key;  
    if(window.event) 
      key = window.event.keyCode; //IE 
    else 
      key = e.which; //firefox  

    return (key != 13); 
} 

</script> 

Và trong codebehind của bạn:

textbox.Attributes.Add("OnKeyPress","return disableEnterKey(event)"); 
+2

sự kiện tập lệnh nội dòng là naff .... tránh chúng. Tôi biết asp.net thích họ nhưng ..... grrrr bain của cuộc sống của tôi – redsquare

0

Nhờ tất cả những ai đã trả lời. Đây là chức năng mới của tôi updateSearchTextbox, hoạt động hoàn hảo:

updateSearchTextbox = function(e) { 
    /// <summary> 
    /// Handles keyup event on search textbox 
    /// </summary> 

    if (e.which == "13") { 
     // update now 
     updateConcessions(); 
     // Don't post back 
     return (false); 
    } else { 
     delayedUpdateConcessions(); 
    } 

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