在ASP.NET中使用JQuery UI Dialog實現表單提交功能,發現出現下面問題:
1. 點擊提交按鈕無任何反應。
在G.cn中搜索之後發現:
jQuery UI Dialog控件初始化時動態生成的HTML元素被添加到頁面的尾部、form元素的後面,而原始的Dialog模板部分(其內包含表單元素)也被移到了 動態生成的HTML元素內。也就是說,原先在form內的表單在Dialog初始化後就被移到form外了,這就導致了Dialog模板內表單全部失效。
解決方法:
方法一:
在JQuery UI的“open”事件處理中將Dialog控件動態生成的HTML元素移到form元素內。
在Dialog初始化時加入黑體代碼:
$(“#dialog“).dialog({
open: function() {
$(“body > div[role=dialog]“).appendTo(”/html/body/form[0]“);
}
});
方法二:
在Open Dialog的JS函數中加入黑體代碼:
function openDialog() {
$(”#dialog”).parent().appendTo(”/html/body/form[0]“);
$(”#dialog”).dialog(”open”);
$(”#tbContent”).focus(); //內容框獲取焦點,便於用戶打開對話框即可錄入信息
}
以上代碼均測試通過。