2012-06-08 52 views
0

我在jQuery對話框中顯示一些表單數據。當我第一次這樣做時,一切正常。我可以在對話框中看到「我的價值」字符串。如果我再次重新打開對話框,表單值不再可見。看看這jsfiddle自己嘗試一下。這是代碼:第二次使用jQuery UI對話框顯示時,表單值不可見

var dialog; 

$("#b1").click(function(){ 
dialog = $("<div></div>").html("<p><input id='input1' type='text'></p>").dialog({ 
    autoOpen:false, 
}); 
$("#input1").val("my value"); 
dialog.dialog("open"); 
}); 

這個錯誤只發生在我動態地添加html標籤時。如果我使用靜態html塊,一切正常。任何想法這裏有什麼錯誤?謝謝!

回答

1

那是因爲你不摧毀舊

<input id='input1' type='text'> 

所以當你打電話

$("#input1").val("my value"); 

它設置的第一

<input id='input1' type='text'> 

發現DOM中值。

+0

謝謝!我完全錯過了這一點 – guido

+0

我做了一些更多的研究。當你每次點擊某處時,通過$(「#myelem」)。html()將html內容加載到你的dom中,內容被覆蓋並且一切正常。但是,當你從#myelem內部的內容創建一個對話框時,如果有多個對話框,jquery會將myelem移動到主體的末端以進行正確堆疊。下次你加載你的內容時,你會有第二個#myelem。 .dialog(「destroy」)不會清除這個混亂,因爲它只會刪除它的對話html節點。與dyn合作。內容和對話意味着 - >清理自己! – guido

相關問題