2017-04-12 30 views
0

由於某些原因,當我打開一個包含輸入類型的對話框時,它會打開多個對話框。當包含textfield,textareas等多次打開jquery對話框

這裏是我的代碼:

var addTagsDialog = $("<p>This is just a test tag</p> <br /><input type='text' />"); 

    addTagsDialog.dialog({ 
     buttons: { 
     "Update": function() { 
      console.log('Update Func Run'); 
     } 
     }, 
     Cancel : function() { 
     addTagsDialog.dialog('destroy').remove(); 
     } 
    }); 

這裏是一個小提琴:https://jsfiddle.net/jrrxxbdg/

如果我冒了出來:

<br /><input type='text' /> 

然後,它只是打開了一個對話框模式。

我使用這些版本:

  • 的jQuery 1.9.1
  • 的jQuery-UI-1.9.2

任何人都可以看到,爲什麼是這樣的話?

我讀了另一個問題,這可能是因爲我不使用他們,但是我已經用我又增加了

dialog('destroy').remove(); 

一個模式以後每次破壞模態,這並不能說明它是如何複製在JSFiddle中。

有什麼想法?

回答

1

您需要將所有內容都包裝到DIV中。當您以這種方式創建元素時,您將製作一個由4個獨立元素組成的jQuery集合(<p>,textElement,<br>,)。然後它爲每個人創建一個對話框。

用途:

var addTagsDialog("<div><p>This is just a test tag</p> <br /><input type='text' /></div>"); 
+0

謝謝。我不知道。 – JamesG