2015-10-13 42 views
1

讓我第一次進入具有向前和向後控件的多部分表單。最初的想法是,在完成所有必填字段之前,您無法跳出頁面。我使用多個a hrefs來提交表單,其中一組a hrefs是包含在表單頁面和沒有表單頁面的菜單的一部分。所以我的想法是使用javascript,閱讀標籤中的pageId,以確定在點擊href之後它應該作爲表單提交還是僅僅按照默認的href =「」鏈接提交。所以,我試過如下:多部分表單 - 試圖阻止默認的href行爲

 function setvalue(whatvalue){ 

      alert (document.getElementById('subtype').value); 

      if (pageId != "gettingstarted"){ 
       alert ("Doesn't equal gettingstarted so submit"); 
       if (whatvalue){document.getElementById('subtype').value=whatvalue;} 
       $('#myForm').submit(); 
       return false; 
      } 
     } 

使用這些鏈接與默認的HREF =「」和一個onclick燒製js函數

 <a onclick="setvalue('gettingstarted.php');" href="gettingstarted.php">Get Started</a> 
    <a onclick="setvalue('form1.php');" href="form1.php">Form One</a> 
    <a onclick="setvalue('form2.php');" href="form2.php">Form Two</a> 
    <a onclick="setvalue('preview.php');" href="preview.php">Preview</a> 

您單擊的href,那麼如果它不是起始頁(不包含表單),對錶單進行了調整,然後提交,並且默認的href =「」被停止執行(通過返回false;)。如果是起始頁面,那麼js什麼都不做,理論上href鏈接被跟着。

雖然href鏈接沒有被停止。如果我將hrefs更改爲「#」,它可以工作,因爲我可以看到頁面加載的閃爍,然後php表單檢查器啓動。但是,通過鏈接,鏈接位置被加載並且提交(以及後續形式檢查)似乎沒有機會發生。閱讀一些關於停止違約行爲的線索,並認爲回報錯誤就是答案。

感謝您的時間和閱讀。

回答

0

的情況下需要在屬性

<a onclick="return setvalue('gettingstarted.php');" ..... /> 

你還需要添加一回真正的在這裏,這將允許事件繼續回報。

function setvalue(whatvalue){ 

      alert (document.getElementById('subtype').value); 

      if (pageId != "gettingstarted"){ 
       alert ("Doesn't equal gettingstarted so submit"); 
       if (whatvalue){document.getElementById('subtype').value=whatvalue;} 
       $('#myForm').submit(); 
       return false; 
      } 

      return true; 
     }