|
web頁(yè)面里有多個(gè)表單,每個(gè)表單對(duì)應(yīng)著某一類數(shù)據(jù)操作。
比如一個(gè)詳細(xì)的簡(jiǎn)歷信息頁(yè)面分
1、個(gè)人資料
2、工作經(jīng)驗(yàn)
3、項(xiàng)目經(jīng)驗(yàn)
4、其他信息 4個(gè)表單。
一般的需求是允許用戶單獨(dú)提交其中任何一個(gè)表單到下一個(gè)頁(yè)面進(jìn)行修改操作(也就是說(shuō)頁(yè)面有4個(gè)不同的修改按鈕,點(diǎn)擊哪個(gè)按鈕則只提交某一個(gè)表單的數(shù)據(jù)到服務(wù)器,并根據(jù)表單的action)。
現(xiàn)在有這樣的需求,允許用戶選擇其中任意的一個(gè)或多個(gè)表單進(jìn)行提交修改,這樣的話在客戶端如何提交表單?
聲明:可能會(huì)有人說(shuō)將4個(gè)表單合成一個(gè)大表單,根據(jù)修改按鈕的不同在服務(wù)器端進(jìn)行不同的數(shù)據(jù)操作即可。這是一種解決辦法,但考慮到頁(yè)面數(shù)據(jù)量比較大,為了提高效率,減少數(shù)據(jù)傳輸量,還是希望能夠分成多個(gè)表單提交,所以這個(gè)辦法暫不考慮。是不是一定要用js或ajax?如果不用呢?
2 個(gè)人觀點(diǎn)
1 用Ajax提交,比如prototype
new Ajax.Request("/do1",{parameters:$("form1").serialize().......);
new Ajax.Request("/do2",{parameters:$("form2").serialize().......);
你可以同時(shí)調(diào)用多個(gè),默認(rèn)是異步提交,所以可以同時(shí)提交多個(gè)表單,這個(gè)方案是最簡(jiǎn)單的。
2 使用多個(gè)iframe,然后將每個(gè)表單的target指向不同的iframe
然后用js的
document.getElementById("form1").submit();
document.getElementById("form2").submit();
。。。
這個(gè)樣子進(jìn)行提交。
3 兩個(gè)方法的對(duì)比
Ajax方便簡(jiǎn)單,對(duì)結(jié)果的處理也比較省事,框架都替我們做好了,但不能跨域提交
iframe最符合一般的使用,也可以跨域提交,處理返回結(jié)果稍微麻煩些,需要在iframe里面使用 parent.進(jìn)行調(diào)用才可以。
JavaScript技術(shù):用Javascript同時(shí)提交多個(gè)Web表單的方法,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。