当我点击提交时,它会直接进入另一个页面

when I click submit, it goes straight onto another page

本文关键字:另一个 提交      更新时间:2023-09-26

我的表单在不希望的时候提交到另一个页面。当前页面称为create_session.php

如果满足所有验证和回发要求,我希望提交表单,即使在那之后,当确认框出现时,用户也需要单击"确定"。但这种事从来没有发生过。当用户点击提交按钮时,它会直接将用户带到另一个页面"QandATable.php",它不关心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点击处理程序,它在其中检查validation()和postback(),如果两者都满足,则会显示Confirm()。

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

您需要从onClick处理程序返回false以阻止表单提交。

您需要确保在单击提交按钮时没有应用默认操作。在这种情况下,默认操作是提交表单。

尝试添加return false;,如

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

两个更改;您需要传递函数,而不是函数的返回值,并且需要返回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;
}