2011-02-27 67 views
1

我正在使用JQuery對話框。如何處理ENTER按鈕按下JQuery對話框

我在下面的代碼中打開了我的對話框。

$('#MyLogin').dialog({ 
       autoOpen: true, 
       width: 450, 
       modal: true, 
       draggable: false, 
       title: $('.LoginpopupHeaderText').text(), 
       close: function(event, ui) {showSelect();} 
      }); 

當對話框打開,在它裏面登錄按鈕,使用點擊事件,驗證它的用戶名和密碼字段。請參閱下面的代碼示例。

//Login Button Clicked 
    $('#loginButton').click(function() 
    { 
      //Code goes here 
     }); 

我的登錄按鈕是一個圖像不是按鈕。

現在,我要趕「輸入」按下按鈕,只有當我登錄對話框打開,以及醒目的「Enter」之後按鈕,它應該叫我「loginButton」單擊事件,所以它的行爲就像我們在打開的對話框中單擊登錄按鈕一樣。

請建議!

謝謝。

最好的問候,

回答

6

您可以檢查按鈕可見

$('body').keyup(function(e) { 
    if ($('#MyLogin').is(':visible') && e.which == 13) { 
     //stuff 
    } 
}); 
+0

謝謝@Yads,我們不能使用對話框的「open:function()」,然後把焦點放到我的登錄按鈕上,這是圖像,如果是的話,你能建議我該怎麼做,因爲我不能把重點放在它上面。 – 2011-02-27 05:29:51

+0

@MKS,這可能是可能的,請試試看。但是,當用戶點擊任何地方(如文本字段)時,您的建議解決方案就會中斷。 – Vadim 2011-02-27 05:33:39

1

在DIV MyLogin例如你的 「的onLoad」 事件註冊一個JS功能

 <div id="MyLogin" onload="javascript:return checkKeyPress();" /> 

checkKeyPress功能檢查,如果鍵代碼是13例如在提交表單僞

event.preventDefault() ; 
    if (keyCode == 13) 
      frm.submit(); 

    return false; 

記住event.preventDefault返回假線是必須的,否則KeyPress事件將傳播到主窗體/頁。希望這會有所幫助。