2010-07-14 36 views
1

我在IE6中出現了一些問題,其中只有一個「確定」按鈕的jQuery UI對話框確認框。如何在使用jQueryUI對話框確認時取消激活「Enter Key」

$("#myBox").dialog({ 
      autoOpen: false, 
      closeOnEscape: false, 
      resizable: false, 
      modal: true, 
      draggable: false, 
      position: ["center", 100], 
      buttons: { 
       'Ok': function() { 
         $(this).dialog("close"); 
         closeReq(); 
        } 
     } 
    }); 

基本上,我只希望對話框與任何附加功能一起呼籲反對「確定」關閉/火功能,只有當「確定」按鈕,用戶點擊。

此刻,我允許用戶按下「回車」來啓動一些信息的檢索,然後基於這些數據的驗證,我產生一個模態jQuery UI對話框,但似乎自動關閉用戶從頭開始按下「輸入鍵」。

如何防止發生這種情況,即禁用IE6中的「Enter」鍵以查看此jQueryUI對話框消息框?

謝謝。

回答

1

此刻,我允許用戶按「Enter」來斷火的一些信息檢索,然後在此基礎上的一些數據驗證

徘徊無論你這樣做,叫

.preventDefault(); 
.stopPropagation(); 

在您的事件處理程序中。返回false就像是一個捷徑。

+0

對不起,jAndy,沒有爲我工作。通過仍然按下回車鍵,通過運動並移除對話框而不允許用戶確認「確定」按鈕。按鈕中是否有任何可以完成的事情? – tonyf 2010-07-14 08:07:34

+0

感謝您的幫助,並對延遲迴來抱歉,但我設法解決這個問題,使用以下邏輯:if(event.preventDefault){event.preventDefault();}其他{ event.returnValue = false; } – tonyf 2011-02-04 00:41:38

0

管理跟蹤這種下降,這解決了我的問題,請參見: see solution

貌似的preventDefault不被IE6

認可

感謝@jAndy的協助。

1

好你解決了你的問題。這裏有什麼對我有用:

// Kills an event's propagation and default action. Scott Andrew 
function knackerEvent(eventObject) { 
    if (eventObject && eventObject.stopPropagation) { 
     eventObject.stopPropagation(); 
    } 
    if (window.event && window.event.cancelBubble) { 
     window.event.cancelBubble = true; 
    } 

    if (eventObject && eventObject.preventDefault) { 
     eventObject.preventDefault(); 
    } 
    if (window.event) { 
     window.event.returnValue = false; 
    } 
}