2009-10-08 72 views
0

我想用jQuery的按鍵觸發一個按鈕,點擊使用jQuery對話框功能創建的模式對話框。問題是,使用下面的代碼,它第一次工作(按Enter鍵按下保存按鈕),但當我關閉模式對話框並重新打開它時,我會變得不穩定。我在想一些$(this).("button:contains('Save')")的變體可以工作,但這不起作用。如果使用$(「#dialog」)。對話框('open')而不是autoOpen:true打開對話框。 該任務的最佳做法是什麼?對話框按鍵和DOM

謝謝!

回答

2

我會做:

$('#dialog').keyup(function(e) { 
    if (e.which == 13) { 
     var buttons = $(this).dialog('option', 'buttons'); 
     buttons['Save'](); 
     e.stopPropagation(); 
    } 
}) 
+0

這似乎是一個對話框做的工作,但是,當「保存」打開一個新的對話框,關閉一切..新的對話框不會有另一個「保存「按鈕,或者... – Rio 2009-10-08 19:06:13

+0

除非您從DOM中刪除元素,否則keyup事件處理程序不會從元素中分離。聽起來你在別的地方還有其他問題。 – 2009-10-08 19:15:43

2

按鍵是字母。 keydown是爲了一切。我會嘗試使用keydown。

您的代碼很可能不會執行。回車將觸發默認操作,這就是它第一次運行的原因。

此處瞭解詳情:

http://www.bloggingdeveloper.com/post/KeyPress-KeyDown-KeyUp-The-Difference-Between-Javascript-Key-Events.aspx

+0

其實,你有部分權利。如果對話框中包含一個表單,按回車鍵「提交」,但當對話框沒有包含表單時,Ken的回答會有幫助,因爲按回車鍵不會執行任何操作。 – Rio 2009-10-08 19:10:38

相關問題