如果看到一堆程式碼覺得很亂不爽,直接 END 或 左轉離開 吧,不送 XD
之前寫了個網頁,有個表單~裡面的程式碼大概長這樣
<iframe id="iframe1" name="iframe1" style="display:none;"></iframe>
<form target="iframe1" id="theform1" name="theform[]" action="test.php?mode=go" method="post">
<input type="text" id="title" name="title">
<input type="submit" value="送出">
</form>
因為某些原因,這個表單變成好幾個同時出現在畫面,客戶又要按同一個按鈕,存下這群表單…
於是我又寫了一個
<input type="button" onClick="saveall();" value="存這堆表單">
當然,我也寫了支 javascript 來給 saveall 這個 function 用
<script language="javascript">
function saveall(){
for(i=0;i<document.getElementsByName('theform[]').length;i++)
{
document.getElementsByName('theform[]')[i].submit();
//$(document.getElementsByName('theform[]')[i]).submit();
}
alert('Done!');
}
</script>
用了一陣子後,半夜有個美眉忽然傳了msn的訊息來,然後嗆了一句...
你寫的儲存,在 google chrome 不能用,馬的 epic failed !
於是只好馬上 google ,查詢了 「form submit chrome」
大部分的網頁幾乎都是在寫 已回報 google chrome ,不然就是提到 webkit core 的都有這個 bug!?
而且很多網頁都是掛的,找不到連結,還有人說去 w3cschool 看比較快= =
好不容易查到一個網頁: http://www.corbensproducts.com/cgblog/49/jQuery-and-form-submit-in-Chrome.html
裡面洋洋灑灑的寫了一堆,老實說有點眼花~
不過~至少他寫出了我發生的問題,且似乎是個可行的解決方法!!
於是我把我的程式碼改成這樣~
<script language="javascript">
function saveall(){
for(i=0;i<document.getElementsByName('theform[]').length;i++)
{
//document.getElementsByName('theform[]')[i].submit();
//$(document.getElementsByName('theform[]')[i]).submit();
//將讀入的 form by name 單體,轉成jquery
theform=$(document.getElementsByName('theform[]')[i]);
//再將變數 action 取出來用,因為我每個表單都要走不同的路...
var tmp=theform.attr('action');
//利用 jquery 裡的 post 送出,這個 theform.serialize 寫的真他媽的好...
$.post(tmp, theform.serialize());
}
alert('Done!');
}
</script>
總之~真的可以運作了,美眉很開心的馬上測試,然後說 ok ... 看來一個問題再一次的解決了^_^