我创建了一个用户输入数据并单击“提交”按钮的表单(在PHP中)。 在这里,我点击了js弹出一个弹出窗口,然后点击“提交”#39;按钮。
Popup正确加载但在第二秒的一半时间内消失。
我哪里出错了? 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 :(得分: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();
});
完成所有弹出式检查后,触发提交按钮自动提交表单:
$("#Submit").click();
答案 1 :(得分: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();
});
希望这有帮助。