這個問題的解決方法是將javascript中要送出的表單複製一份到foot內的表單(f2)後再送出,點子是從wog中的act_click()和foot_trun()來的
不過為了傳送內容的正確性加上了許多判斷而犧牲了速度,所以若是可以用act_click()或foot_trun()取代的話盡量不要使用form_send()以增快處理速度
以下列出form_send()的程式碼(BUG已修正)
- 代碼: 選擇全部
function form_send(f)
{
var frm=parent.foot.document.f2;
while(i=frm.children[0])
frm.removeChild(i);
var len=f.elements.length;
var btn_log=new Array();
for(var l=0;l < len;l++)
{
var temp_s="";
var btn_check=false;
var i=f.elements[l];
var btn_name=i.name;
if(btn_name == "")continue;
for(var n=0;n < btn_log.length;n++)
{
if(btn_name == btn_log[n])
{
btn_check=true;
break;
}
}
if(btn_check == false)
{
var btn_tagname=(i.tagName).toLowerCase();
if(btn_tagname=="select")btn_tagname="input";
var btn=parent.foot.document.createElement(btn_tagname);
var btn_type=(i.type).toLowerCase();
btn.name=btn_name;
//btn.type="hidden";
if(btn_type == "radio" || btn_type == "checkbox")
{
var item=f.all(btn_name);
for(var j=0;j<item.length;j++)
{
if(item[j].checked==true)
{
temp_s+=","+item[j].value;
}
}
temp_s=temp_s.substr(1,temp_s.length);
btn.value=temp_s;
}else
{
btn.value=i.value;
}
frm.appendChild(btn);
btn_log.push(btn_name);
}
}
frm.action="wog_act.php";
frm.method="POST";
frm.target="mission";
frm.submit();
}
然後在wog_foot.htm裡面加上f2即可使用
- 代碼: 選擇全部
<form action="wog_act.php" method="POST" target="mission" name="f2" style="display:none"></form>
功能說明
安裝說明與範例
以上,有任何問題請指教。