当我不想要时,我的表单会提交到另一个页面。当前页面称为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();
});
}
}
答案 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;"/>