У меня небольшая проблема с моим подтверждением.
Что произошло до того, как я включил окно подтверждения в свой код, так это то, что когда я нажимаю кнопку (имя = 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>