我有關於讓JavaScript在對話框內正確激發的問題。在動態加載的對話框中執行Javascript
下面是我scripts.js中的代碼至極我目前使用的對話框中默認加載對話框
function LoadDialog(url, title) {
var DialogBox = $('<div class="dialog-container"></div>').dialog({ modal: true, autoOpen: false, resizeable: true }).dialog({ width: 500, height: 'auto' });
DialogBox.html('<div class="ajax-load"><img src="/Content/loading.gif" alt="loading"></div>').dialog({ buttons: null, title: 'Loading..' });
DialogBox.dialog('open').load(url, function() {
DialogBox.dialog({ title: title, Buttons: null, position: 'center', close: function (ev, ui) { $(this).dialog("destroy"); } });
});
}
$(function() {
$('.as-dialog').click(function (e) { LoadDialog($(this).attr('href'), $(this).attr('title')); return false; });
});
雖然沒有javascript代碼火災。例如我加載一個不顯眼的驗證小表單到對話框中。沒有身體,頭等,只有一個容器格和形式本身。默認情況下驗證不工作,如果我添加在script.js $(function(){})下的表單事件處理程序它不會觸發。如果我添加下面的JS引用和代碼塊用來裝載它的工作原理與一個問題的形式:
<script src="/Scripts/libs/jquery.validate.min.js"></script>
<script src="/Scripts/libs/jquery.validate.unobtrusive.js"></script>
<script type="text/javascript">
$(function() {
$('#form_Create').submit(function (e) {
e.preventDefault();
});
});
</script>
關於上面的代碼中的非功能是驗證永遠是可行的,但如果我打開的對話框中,將其關閉,然後再次打開它,preventdefault將停止工作,表單將發佈。這可能是一個腳本問題或多重負載?雖然如果放置在scripts.js中,沒有'doc ready'代碼在對話框中工作(標準JavaScript函數可以工作),但我沒有其他選項。 有沒有更好的方式來處理動態加載的文件內的JavaScript或我必須將整個表單放在父頁面中才能夠可靠地對付它們? 你應該如何處理這個問題的任何輸入?
任何機會,你可以提供這個東西http://jsfiddle.net/? –