Окно подтверждения появляется дважды - PullRequest
1 голос
/ 24 ноября 2011

У меня есть окно подтверждения в javascript.Окно подтверждения работает, но есть небольшой глюк.Когда появится окно подтверждения, если я нажму «ОК» или «Отмена», оно закроется и снова откроется, снова запрашивая подтверждение, если я нажму «Ок» или «Отмена» для поля во второй раз, то оно отправит форму.Почему он отображает подтверждение дважды?

Ниже приведен код: (myClickHandler() - функция для кнопки, validation() - функция, в которой происходит проверка моей формы)

 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();

            }    


    function myClickHandler()
    {
        if(validation())
        {
            showConfirm(); 
        }
    }


    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>10: </strong><input class="questionBtn" type="button" value="Prepare Questions" name="prequestion" onClick="myClickHandler()"/></p> 
</form>
...