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

时间:2012-01-26 00:06:56

标签: javascript html forms

当我不想要时,我的表单会提交到另一个页面。当前页面称为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()然后如果两者都满足则会显示showConfirm()。

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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;
}

答案 2 :(得分:1)

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

尝试添加return false;,例如

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