2012-07-20 88 views
1

我試着在下面的堆棧答案沒有運氣提出的技術:確認jQuery UI的提示對話框中輸入密鑰

Submit jQuery UI dialog on <Enter>

東西必須關閉我的代碼。在登錄時,我有一個免責聲明,彈出警告用戶,該網站內的信息是保密的。我希望它繼續,所有用戶必須做的就是敲入回車鍵。這裏是我的原代碼(我已經包括瀏覽器檢查):

$("#loginForm").submit(function (e) { 
    e.preventDefault(); 

    if ($.browser.msie) { 
     $("#dialog-confirm") 
     .dialog({ 
      resizable: false, 
      height: 300, 
      width: 550, 
      modal: true, 
      buttons: { 
       "Continue": function (e) { 
        $("#loginForm").unbind('submit').submit(), 
        $(this).dialog("close"), 
        $("#loginForm").submit(); 
        $("#btnLogin").click(); 
       }, 
       Cancel: function (e) { 
        e.preventDefault(); 
        $(this).dialog("close"); 
       } 
      } 

     }) 
    } 
    else { 
     $("#dialog-browser") 
     .dialog({ 
      resizable: false, 
      height: 220, 
      width: 480, 
      modal: true, 
      buttons: { 
       "Close": function (e) { 
        e.preventDefault(); 
        $(this).dialog("close"); 
       } 
      } 
     }) 
    }; 
}); 

現在,這裏是我的代碼與KEYUP命令:

$("#loginForm").submit(function (e) { 
    e.preventDefault(); 

    if ($.browser.msie) { 
     $("#dialog-confirm") 
     .dialog({ 
      resizable: false, 
      height: 300, 
      width: 550, 
      modal: true, 
      buttons: { 
       "Continue": function (e) { 
        $("#loginForm").unbind('submit').submit(), 
        $(this).dialog("close"), 
        $("#loginForm").submit(); 
        $("#btnLogin").click(); 
       }, 
       Cancel: function (e) { 
        e.preventDefault(); 
        $(this).dialog("close"); 
       } 
      }, 
    HERE>>>  open: function() { 
       $("#dialog-confirm").keypress(function(e) { 
        if (e.keyCode == $.ui.keyCode.ENTER) { 
        $("#loginForm").unbind('submit').submit(), 
        $(this).dialog("close"), 
        $("#loginForm").submit(); 
        $("#btnLogin").click(); 
        } 
       }); 
       } 
     }) 
    } 
    else { 
     $("#dialog-browser") 
     .dialog({ 
      resizable: false, 
      height: 220, 
      width: 480, 
      modal: true, 
      buttons: { 
       "Close": function (e) { 
        e.preventDefault(); 
        $(this).dialog("close"); 
       } 
      } 
     }) 
    }; 
}); 

這不幸的是不適合我的工作,我可以」爲我的生活找出原因?如果有人能看到問題出在哪裏,我會非常感激!

謝謝!

回答

1

嘗試使用這樣的:

$("#dialog-confirm").keydown(function (event) { 
     if (event.keyCode == 13) { 
      // Submit it 
     } 
    }); 
+0

嗯,只是嘗試過,仍然無法正常工作...... :( – KrispyK 2012-07-20 13:49:55

3

我把這個放在一邊的大部分時間,只是重新審視它。我得到它的工作!這裏是我的代碼:

$("#loginForm").submit(function (e) { 
    e.preventDefault(); 

    if ($.browser.msie) { 
     $("#dialog-confirm") 
     .dialog({ 
      resizable: false, 
      height: 300, 
      width: 550, 
      modal: true, 
      buttons: { 
       "Continue": { 
        text: "Continue", 
        id: "btnContinue", 
        click: function (e) { 
         $("#loginForm").unbind('submit').submit(), 
         $(this).dialog("close"), 
         $("#loginForm").submit(); 
         $("#btnLogin").click(); 
        } 
       }, 
       Cancel: function (e) { 
        e.preventDefault(); 
        $(this).dialog("close"); 
       } 
      }, 
      open: function() { 
       $(document).keydown(function (event) { 
        if (event.keyCode == 13) { 
         $("#btnContinue").click(); 
        } 
       }); 
      } 
     }) 
    } 

從本質上講,我分配的按鈕在我的對話框的ID值,而不是$( 「#對話,確認」)的keydown我用的$(document).keydown。由於該功能僅在對話框打開後才設置,因此不一定會影響我的頁面的其餘部分。在keydown函數的內部,我使用了它通過ID呼叫的繼續按鈕。

感謝大家的幫助。