2014-07-02 67 views
0

我有一個奇怪的問題。提交後刷新頁面不起作用

我在一個頁面上有多個表單。提交表單後,我想刷新頁面。問題是用我的代碼刷新頁面,但不提交表單。如果我刪除刷新位,表單被提交。

我錯過了什麼嗎?自表格工作以來,請僅查看刷新位。

<form method="post" action="" id="formProduct1"> 
<select id="product_1234" class="selectbox">...stuff...</select>  
<a href="#" class="actionbutton prodorderbtn submit">Order</a> 
</form> 
<form method="post" action="" id="formProduct2"> 
<select id="product_4321" class="selectbox">...stuff...</select>  
<a href="#" class="actionbutton prodorderbtn submit">Order</a> 
</form> 
etc.... 

<script> 
    $('.submit').on('click', function(e){ 
    e.preventDefault(); 
    var submit = $(this); 
    var form = submit.parents('form').first(); 
    var selected = form.find('option:selected'); 
    var pvid = selected.val(); 
    form.attr('action', '/cart/add/' + pvid).submit(); 

    setTimeout(window.location.reload(), 500); 
    return false; 

/**** this also doesn't work ******/ 
     setTimeout(function() { 
      window.location.reload(); 
     }, 500); 
     return false; 
/**** this also doesn't work ******/ 
    }); 
</script> 
+1

,如果你想重新加載頁面爲什麼Ajax添加到窗體? – Pete

+0

是的,你錯過了更多的東西;默認情況下,表單在提交時遵循'actionURL'。如果您通過刷新/重新加載來中斷進程,則不會提交表單,因爲提交表單的操作將被中止。 – PeterKA

+0

@ user3558931:好的offcourse!的setTimeout( 'history.go(0);',100);返回false;似乎在做詭計! – Meules

回答

-1

好,我找到了一個快速骯髒的解決方案

setTimeout('history.go(0);',100); return false; 
+0

這不刷新或重新加載頁面;它只是從瀏覽器的緩存中加載頁面。 – PeterKA