2012-01-26 26 views
0

我的表單在我不想要時提交到另一個頁面。當前頁面被稱爲create_session.php當我點擊提交時,它會直接進入另一個頁面

如果滿足所有驗證和回發,甚至在用戶需要在出現確認框時單擊「確定」,我想要提交表單。除此之外從未發生過。當用戶點擊提交按鈕時,它將用戶直接轉到另一個頁面「QandATable.php」,它不關心驗證(),postback()和確認框不會出現。所以我想知道的是,當用戶點擊提交按鈕時,我怎樣才能得到它,以便它甚至在去之前檢查validation(),postback()和確認框(showConfirm())到下一頁。

我相信問題是提交按鈕和表單操作。下面的形式:

<form action="QandATable.php" method="post" id="sessionForm"> 

<p><input type="text" id="txtMarks" name="textMarks" onkeypress="return isNumberKey(event)" maxlength="5" /><br/><span id="marksAlert"></span></p> 
<p><strong>Room:</strong> <input type="text" id="room" name="roomChosen" value="<?php echo $roomChosen; ?>" /> 
       <br/><span id="roomAlert"></span></p>  <!-- Enter Room here--> 

<p><input class="questionBtn" type="submit" value="Prepare Questions" name="prequestion" onClick="myClickHandler()"/></p> 
</form> 

下面是JavaScript單擊處理程序,它檢查的驗證(),回傳(),然後如果這兩個滿足,那麼它會showConfirm的()。

function myClickHandler(){ 
    if(validation()){ 
     postback(function(message) { 
      if (message == "") 
       showConfirm(); 
     }); 
    } 
} 
+0

你看到任何JavaScript錯誤在您的瀏覽器控制檯? – Moon

回答

1

你需要確保當提交沒有應用的默認操作按鈕被點擊。在這種情況下,默認操作是提交表單。

嘗試添加return false;

<input class="questionBtn" type="submit" value="Prepare Questions" name="prequestion" onClick="myClickHandler(); return false;"/> 
2

您需要從onClick處理程序,以防止形式被提交返回false

1

兩個變化;你需要傳遞的功能,而不是函數的返回值,你需要返回false

<input class="questionBtn" type="submit" value="Prepare Questions" name="prequestion" onClick="myClickHandler" /> 
------------------------------------------------------------------------------------------------------------^ here 

function myClickHandler(){ 
    if(validation()) { 
     postback(function(message) { 
      if (message == "") 
       showConfirm(); 
     }); 
    } 

    return false; 
} 
相關問題