DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> jQuery UI Dialog控件中的表單無法正常提交的解決方法
jQuery UI Dialog控件中的表單無法正常提交的解決方法
編輯:JQuery特效代碼     
最近使用jQuery UI的Dialog控件時發現如果在此控件放置表單,則所有表單均無法正常提交,具體表現為:
1.提交按鈕失效,點擊後無任何反應。

2.即便是使用其它手段使頁面產生提交,服務器端也無法取到Dialog中的表單數據。

研究了頁面源碼後發現,jQuery UI Dialog控件初始化時動態生成的HTML元素被添加到頁面的尾部、form元素的後面,而原始的Dialog模板部分(其內包含表單元素)也被移到了 動態生成的HTML元素內。也就是說,原先在form內的表單在Dialog初始化後就被移到form外了,這就導致了Dialog模板內表單全部失效。

不知jQuery UI的Dialog這樣設計是一項功能還是一個bug。為了在Dialog內實現正常的頁面提交,根據上述分析,我找到一個簡單的解決辦法——在jQuery UI控件的“open”事件處理程序中將Dialog控件動態生成的HTML元素移到form元素內,代碼如下:
代碼如下:
$("#dlg").dialog({
open: function () {
$("body > div[role=dialog]").appendTo("form#aspnetForm");
}
});

代碼中的“aspnetForm”是ASP.NET應用程序自動生成的當前頁面form元素ID,使用時你可以換成自己頁面的form ID。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved