我的确认有点小问题。
在我的代码中包含一个确认框之前发生的事情是,当我单击一个按钮(名称=preQuestion)时,如果有任何验证错误,那么它将在页面上显示验证错误并且不提交表单,如果没有验证错误然后它将提交表单。
但是我现在想做但我无法工作并且一直给我错误的是,如果有验证错误,那么它会做它目前正在做的事情,但是如果没有验证错误,那么我想要一个确认框出现说明 ... 并且用户将单击确定或取消。如果用户单击确定然后提交表单,如果用户单击取消则关闭确认框并留在同一页面上。我哪里错了?
下面是 javascript 代码(我有缩短代码,所以它不包括所有验证代码,否则将是代码溢出):
function validation() {
var isDataValid = true;
var sessionNoO = document.getElementById("sessionNo");
var questionNumberO = document.getElementById("txtQuestion");
var roomTextO = document.getElementById("room");
var errSessionMsgO = document.getElementById("sessionNoAlert");
var errQuesMsgO = document.getElementById("numberAlert");
var errRoomMsgO = document.getElementById("roomAlert");
var trimmedRoomText = roomTextO.value.replace(/^\s+/, '').replace(/\s+$/, '');
if (sessionNoO.value == ""){
errSessionMsgO.innerHTML = "Please Enter in the Number of Sessions you Require";
isDataValid = false;
}else if (sessionNoO.value == 0){
errSessionMsgO.innerHTML = "Number of Sessions Must be More than 0";
isDataValid = false;
}else{
errSessionMsgO.innerHTML = "";
}
if(questionNumberO.value == 0){
errQuesMsgO.innerHTML = "Please Set the Number of Questions";
isDataValid = false;
} else {
errQuesMsgO.innerHTML = "";
}
if (roomTextO.value == ""){
errRoomMsgO.innerHTML = "Please Enter in a Room Number";
isDataValid = false;
}else if (!trimmedRoomText.length){
errRoomMsgO.innerHTML = "Please Enter in a Room Number";
isDataValid = false;
}else{
errRoomMsgO.innerHTML = "";
}
return isDataValid;
}
function submitform()
{
var sessionFormO = document.getElementById("sessionForm");
sessionFormO.submit();
}
document.getElementsByName("prequestion")[0].addEventListener('click', myClickHandler);
function myClickHandler(){
if(validation()){
function showConfirm(){
var confirmMsg=confirm("Make sure that your details are correct, once you proceed after this stage you would
not be able to go back and change any details towards your Session.Are you sure you want to Proceed?");
if (confirmMsg==true)
{
submitform();
}else{
parent.close();
}
}
}
}
Html表单代码(不显示整个表单,以免代码溢出):
<form action="QandATable.php" method="post" id="sessionForm">
<p><strong>2: Number of Sessions you Require:</strong> <input type="text" id="sessionNo" onkeypress="return isNumberKey(event)"><br/><span id="sessionNoAlert"></span></p>
<p><strong>8: Room:</strong> <input type="text" id="room"><br/><span id="roomAlert"></span></p> <!-- Enter Room here-->
<table>
<tr>
<th>9: Number of Questions:</th>
<td class="spinner"><input type="text" class="spinnerQuestion" id="txtQuestion" name="textQuestion"></td>
<td><button class="scrollBtn" id="btnQuestionUp" type="button"><img src="Images/black_uppointing_triangle.png" alt="Increase" /></button>
<button class="scrollBtn" id="btnQuestionDown" type="button"><img src="Images/black_downpointing_triangle.png" alt="Decrease" /></button></td>
</tr>
</table>
<div id="numberAlert"></div>
<p><strong>10: </strong><input class="questionBtn" type="button" value="Prepare Questions" name="prequestion" onClick="myClickHandler()"/></p> <!-- Prepare Questions here-->
</form>