2014-09-25 107 views
0

我在javascript上彈出一些問題 我需要打開彈出窗口,當我單擊輸入窗體中的某個文本框,然後提交彈出窗口,然後回到主頁面(輸入表單)繼續工作而不刷新它。Javascript - 提交彈出窗口,無需重新加載HTML5中的父頁面

我用同樣的實現方法和jQuery這樣的 - >HTML 5 and CSS jQuery Log-in and Registration Popup Box - Adam Bray

但後來我沒能回到父頁面刷新全無。當我點擊提交按鈕時,它會繼續重新加載。 我已經看過有關這就像許多問題 - >php ajax form submit without refresh parent page 這 - >javascript popup reloads parent page -但仍獲得遠不及我想要我的代碼

而且我已經嘗試過使用preventDefault();return false;,隱藏的jQuery,或更改類型的按鈕形式'提交'到'按鈕'太..但沒有運氣,彈出甚至不會關閉。

這是我用

的JavaScript
<script> 
$(document).ready(function() { 
$("#loginLink").click(function(event){ 
    event.preventDefault(); 
    $(".overlay").fadeToggle("fast"); 
}); 

$(".overlayLink").click(function(event){ 
    event.preventDefault(); 
    var action = $(this).attr('data-action'); 

    $.get("ajax/" + action, function(data) { 
     $(".login-content").html(data); 
    }); 

    $(".overlay").fadeToggle("fast"); 
}); 

$(".close").click(function(){ 
    $(".overlay").fadeToggle("fast"); 
}); 

$(document).keyup(function(e) { 
    if(e.keyCode == 27 && $(".overlay").css("display") != "none") { 
     event.preventDefault(); 
     $(".overlay").fadeToggle("fast"); 
    } 
}); 

});

關閉的彈出按鈕功能 - >

<script> 
function closeSelf(){ 
window.close(); 
event.preventDefault(); 
} 

,這是我上彈出按鈕 - >

<button type="button" onclick="closeSelf(); return false;">DONE</button> 

我一直在掙扎好幾天,任何意見將不勝感激^ _^

噢,我再次懷疑,爲什麼w本機驗證工作在這個彈出?它適用於父,雖然實際上

回答

0

的問題是,在「.overlayLink」單擊處理程序

$(".overlayLink").click(function(event){ 
    event.preventDefault(); 
    ... 
}); 

此處理,附以這種方式,不監聽表單提交,因此不能抑制它。

要截取表單提交,你需要一個處理程序附加到表單的「onsumbmit」活動,具體如下:

$("#myForm").on('submit', function(event) { 
    event.preventDefault(); 
    ... 
}); 
+0

感謝快速響應^ _ ^。 \t 我試過我們的代碼。我改變了我的按鈕回到提交,嘗試我們的代碼,並在我的按鈕'onclick'事件調用它,但我的彈出不會關閉(O_o)。並不是$(「。overlayLink」)。click(function(event)用來打開彈出窗口本身嗎? – 2014-09-25 22:33:14

+0

Sylvie,在很多方面,我只知道和你的問題一樣多,看起來疊加層有一個或多個與'class =「overlayLink」'的鏈接,當它被點擊的時候,它會導致我發出一個ajax請求,所以代碼表示NO,'$(「。overlayLink」)。click(function )...'不打開彈出窗口(通過點擊「#loginLink」打開彈出窗口並點擊「.close」鏈接或按下鍵盤的「退出」鍵)。 – 2014-09-25 23:45:59

+0

您需要將代碼安裝爲我在上面寫了'$(「#myForm」)。on('submit',function(event)'。只要確保「myForm」字符串匹配你的表單的id。事件的正常順序是(i)用戶點擊「提交」,(ii)發佈表單的「提交」事件,(iii)提交處理程序觸發,(iv)事件。(v)ajax請求被髮送,(vi)服務器返回其響應,(vii)你的ajax成功處理程序觸發(viii)返回的數據顯示在DOM的「.login-content」元素中。 – 2014-09-25 23:46:23

相關問題