今天用chrome提交一個表單時,發現一個奇怪的問題:
復制代碼 代碼如下:
//提交表單
document.frmOrder.action = 'http://www.abc.com/d.aspx';
document.frmOrder.method = 'POST';
document.frmOrder.target = '_blank';
document.frmOrder.submit();
第一次提交可以,第二次提交就沒有任何響應了。需要重新加載頁面後才可以提交,而這個問題在Firefox,IE下沒有出現。
馬上Google了一下發現這是webkit內核浏覽器的共有特性,這樣做是為了防止表單被重復提交。
解決方法也很簡單,只需要為 submit 按鈕添加 onclick 事件響應,給表單的 action 值添加一個無用的參數,改變表單的響應地址。
具體實現方法:
復制代碼 代碼如下:
//提交表單
document.frmOrder.action = 'http://www.abc.com/d.aspx?r='+Math.random();
document.frmOrder.method = 'POST';
document.frmOrder.target = '_blank';
document.frmOrder.submit();