2015-09-15 3 views
0

Я создал форму (на PHP), где пользователь вводит данные и нажимает кнопку отправки. здесь я запрограммировал js для всплывающего окна при нажатии кнопки «отправить».Почему всплывающее окно исчезает во втором

Всплывающее устройство правильно загружается, но исчезает в половине второго.

Где я могу пойти не так? js выглядит следующим образом:

var popupStatus = 0; 

function loadPopup() { 
    if (popupStatus == 0) { 
     $("#backgroundPopup").css({ 
      "opacity": "0.7" 
     }); 
     $("#backgroundPopup").fadeIn("slow"); 
     $("#popupContact").fadeIn("slow"); 
     popupStatus = 1; 
    } 
} 

function disablePopup() { 
    //disables popup only if it is enabled 
    if (popupStatus == 1) { 
     $("#backgroundPopup").fadeOut("slow"); 
     $("#popupContact").fadeOut("slow"); 
     popupStatus = 0; 
    } 
} 

function centerPopup() { 

    var windowWidth = document.documentElement.clientWidth; 
    var windowHeight = document.documentElement.clientHeight; 
    var popupHeight = $("#popupContact").height(); 
    var popupWidth = $("#popupContact").width(); 

    $("#popupContact").css({ 
     "position": "absolute", 
     "top": windowHeight/2 - popupHeight/2, 
     "left": windowWidth/2 - popupWidth/2 
    }); 
    $("#backgroundPopup").css({ 
     "height": windowHeight 
    }); 

} 
$(document).ready(function() { 
    $("#Submit").click(function() { 
     //centering with css 
     centerPopup(); 
     //load popup 
     loadPopup(); 
    }); 


    $("#popupContactClose").click(function() { 
     disablePopup(); 
    }); 

    $("#backgroundPopup").click(function() { 
     disablePopup(); 
    }); 

    $(document).keypress(function(e) { 
     if (e.keyCode == 27 && popupStatus == 1) { 
      disablePopup(); 
     } 
    }); 

}); 

Над кодом работает отлично в HTML, но он сходит с ума от PHP.

пожалуйста, помогите

+0

Вы используете сообщение формы в своем html? что-то вроде '

' –

+0

да, я это делаю. но не на какую-либо страницу, а как [action = ""], так как я обновляю данные в базе данных через эту форму. – sachin

+0

В этом случае '# Submit' не заботится о том, что происходит на javascript, оно будет отправляться в любом случае, если вы не остановите его (например,' return false; '), но я не думаю, что вы хотите это сделать. Мое предложение чтобы иметь скрытую дополнительную кнопку, которую вы будете использовать для вашей всплывающей проверки –

ответ

0

Чтобы справиться с этим, вы можете создать дополнительную скрытую кнопку, расположенную рядом с вашей кнопки отправки, это будет использоваться для всплывающей проверки:

<!--Hide YOUR ORIGINAL Button--> 
<input type="submit" value="Submit" id="Submit" style="display:none">  
<input type="Submit" id="FakeSubmit" value="Submit"> 

В вашем JavaScript написать загрузить всплывающее окно в случае кнопки на FakeSubmit (эта кнопка не представляет):

$("#FakeSubmit").click(function(){ 
    //centering with css 
    centerPopup(); 
    //load popup 
    loadPopup(); 
}); 

После всех всплывающих проверок, автоматически отправить форму, вызывая ваше SUBM Кнопка она:

$("#Submit").click(); 
0

В идеале, что вам нужно сделать, это, чтобы предотвратить формы от подачи на нажав кнопку отправки, и после того, как вы проверены форму, отправить форму. Он должен быть примерно таким, как:

$("#Submit").click(function() { 
     //centering with css 
     centerPopup(); 
     //load popup 
     loadPopup(); 

     // prevent form from submitting 
     return false; 
}); 

// validation function 
$('#OKButton').click(function() { 
    //form by id 
    $('#myForm').submit(); 
}); 

Надеюсь, это поможет.

Смежные вопросы