jQuery UI Dialog控件中的表單無法正常提交的解決方法
更新時(shí)間:2010年12月19日 22:02:47 作者:
研究了頁面源碼后發(fā)現(xiàn),jQuery UI Dialog控件初始化時(shí)動態(tài)生成的HTML元素被添加到頁面的尾部、form元素的后面,而原始的Dialog模板部分(其內(nèi)包含表單元素)也被移到了 動態(tài)生成的HTML元素內(nèi)。
最近使用jQuery UI的Dialog控件時(shí)發(fā)現(xiàn)如果在此控件放置表單,則所有表單均無法正常提交,具體表現(xiàn)為:
1.提交按鈕失效,點(diǎn)擊后無任何反應(yīng)。
2.即便是使用其它手段使頁面產(chǎn)生提交,服務(wù)器端也無法取到Dialog中的表單數(shù)據(jù)。
研究了頁面源碼后發(fā)現(xiàn),jQuery UI Dialog控件初始化時(shí)動態(tài)生成的HTML元素被添加到頁面的尾部、form元素的后面,而原始的Dialog模板部分(其內(nèi)包含表單元素)也被移到了 動態(tài)生成的HTML元素內(nèi)。也就是說,原先在form內(nèi)的表單在Dialog初始化后就被移到form外了,這就導(dǎo)致了Dialog模板內(nèi)表單全部失效。
不知jQuery UI的Dialog這樣設(shè)計(jì)是一項(xiàng)功能還是一個(gè)bug。為了在Dialog內(nèi)實(shí)現(xiàn)正常的頁面提交,根據(jù)上述分析,我找到一個(gè)簡單的解決辦法——在jQuery UI控件的“open”事件處理程序中將Dialog控件動態(tài)生成的HTML元素移到form元素內(nèi),代碼如下:
$("#dlg").dialog({
open: function () {
$("body > div[role=dialog]").appendTo("form#aspnetForm");
}
});
代碼中的“aspnetForm”是ASP.NET應(yīng)用程序自動生成的當(dāng)前頁面form元素ID,使用時(shí)你可以換成自己頁面的form ID。
1.提交按鈕失效,點(diǎn)擊后無任何反應(yīng)。
2.即便是使用其它手段使頁面產(chǎn)生提交,服務(wù)器端也無法取到Dialog中的表單數(shù)據(jù)。
研究了頁面源碼后發(fā)現(xiàn),jQuery UI Dialog控件初始化時(shí)動態(tài)生成的HTML元素被添加到頁面的尾部、form元素的后面,而原始的Dialog模板部分(其內(nèi)包含表單元素)也被移到了 動態(tài)生成的HTML元素內(nèi)。也就是說,原先在form內(nèi)的表單在Dialog初始化后就被移到form外了,這就導(dǎo)致了Dialog模板內(nèi)表單全部失效。
不知jQuery UI的Dialog這樣設(shè)計(jì)是一項(xiàng)功能還是一個(gè)bug。為了在Dialog內(nèi)實(shí)現(xiàn)正常的頁面提交,根據(jù)上述分析,我找到一個(gè)簡單的解決辦法——在jQuery UI控件的“open”事件處理程序中將Dialog控件動態(tài)生成的HTML元素移到form元素內(nèi),代碼如下:
復(fù)制代碼 代碼如下:
$("#dlg").dialog({
open: function () {
$("body > div[role=dialog]").appendTo("form#aspnetForm");
}
});
代碼中的“aspnetForm”是ASP.NET應(yīng)用程序自動生成的當(dāng)前頁面form元素ID,使用時(shí)你可以換成自己頁面的form ID。
相關(guān)文章
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法總結(jié)
本文是對Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11
jquery表單驗(yàn)證框架提供的身份證驗(yàn)證方法(示例代碼)
本篇文章主要介紹了jquery表單驗(yàn)證框架提供的身份證驗(yàn)證方法的示例代碼。需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12
jQuery HTML設(shè)置內(nèi)容和屬性操作實(shí)例分析
這篇文章主要介紹了jQuery HTML設(shè)置內(nèi)容和屬性操作,結(jié)合實(shí)例形式分析了jQuery HTML設(shè)置內(nèi)容和屬性相關(guān)函數(shù)與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05
jQuery實(shí)現(xiàn)購物車多物品數(shù)量的加減+總價(jià)計(jì)算
這篇文章主要介紹了jQuery實(shí)現(xiàn)購物車多物品數(shù)量的加減+總價(jià)計(jì)算,需要的朋友可以參考下2014-06-06
JQuery解析XML數(shù)據(jù)的幾個(gè)簡單實(shí)例
下面小編就為大家?guī)硪黄狫Query解析XML數(shù)據(jù)的幾個(gè)簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
jquery操作iframe實(shí)現(xiàn)父頁面和子頁面相互操作的九種情況
現(xiàn)實(shí)開發(fā)中難免會遇到子頁面、父頁面相互操作的情況,本文主要介紹了jquery操作iframe實(shí)現(xiàn)父頁面和子頁面相互操作的九種情況,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02

