在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(); //内容框获取焦点,便于用户打开对话框即可录入信息
}
以上代码均测试通过。