簡體   English   中英

如何阻止Enter按鈕在Firefox 12中運行其默認行為?

[英]How do I prevent the Enter button from running its default behavior in Firefox 12?

我有一個用ASP.NET構建的表單。 第一個控件允許用戶從自動完成列表中選擇一個人。 當用戶按下Enter鍵時,它將刷新頁面並復制通過第一個控件獲取的任何信息。 我試圖從刷新頁面中刪除enter鍵的功能。 此代碼均適用於Chrome和IE7 / 8/9(不關心6)。 我需要的只是返回false,因為它可以在我們支持的除Firefox之外的所有瀏覽器中工作。 .click()是一個獎勵,可以將一些可用性添加回密鑰(這樣它將激活控件並選中或取消選中復選框等)

這些都不適用於Firefox 12.點擊發生(證明我希望它到達代碼)但頁面每次都刷新。

focusNextInputfield()是來自類似問題的建議之一,並沒有做我想做的任何事情。 它可能已經完成了它的目的,但我無法分辨,因為頁面刷新了。

我發現了自己的另一個類似問題的preventDefault()和stopPropagation(),它在FF中沒有做任何事情。

我甚至嘗試過回歸真實。

   $(document).keydown(function (event) {
   //handles what happens when the user hits enter
       if (document.activeElement.nodeName !== 'TEXTAREA') {
           if (event.keyCode === 13 || event.which === 13) {
                $(document.activeElement).click();
               // $(document.activeElement).focusNextInputField();
                event.preventDefault();
                event.stopPropagation();
                return false;
           }
       }
    }); 

我只是在尋找任何有關FireFox 12中沒有任何影響的建議或消息嗎? 而且我知道代碼已經到達並且它都可以正常運行而且沒有錯誤,即使使用了所有多余的代碼,它仍然可以在Chrome和IE 7/8/9中正常運行,正如我所說的那樣。

通過較早的迭代,我嘗試強制單擊提交按鈕,但仍然會刷新並驗證,總體上是一個糟糕的用戶體驗。

看起來你正在使用jQuery所以你只需要在表單提交事件中防止默認。

$j("#form-id").submit(function(e) {
    e.preventDefault();
    ...
});

要么:

$j("#form-id").submit(false);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM