2016-09-15 105 views
0

目前在我的HTML中,我有它,如果用戶試圖退出頁面之前填寫任何形式,它會彈出一個錯誤,詢問用戶是否真的想要退出該頁面。頁面退出通知,除非提交按鈕被點擊

但我也遇到這種錯誤,當我有用戶提交頁面並在頁面提交後關閉頁面。

這裏是我的JavaScript代碼:

var warning = true; 
window.onbeforeunload = function() { 
    if (warning) { 
    return "If you leave this page uncompleted student will be marked as Abandon!"; 
    } 
} 

document.getElementById('StudentForm').submit(function() { 
    window.onbeforeunload = null 
    window.close; 
}); 

然後將HTML表單代碼:

<form name=StudentForm id="StudentForm"> 

    <div class="DDbox"> 
     <select name="Action" id="ActionDD" required onchange="showHide()"> 
     <option value="">Action:</option> 
     <option value="complete">Complete</option> 
     <option value="abandon">Abandon</option> 
     <option value="transfer">Transfer</option> 
     </select> 
    </div> 
<br> 
    <div class="COMPLETEbox" id="COMPLETEbox" > 
     <input class="hidden-items" type="text" name="RemNUM" id="REMtextBox" placeholder="Remedy Number" min="1" maxlength="10" style="display:none;"/><br> 

     <select class="hidden-items" name="Reason" id="ReasonDD" style="display:none;"> 
     <option value="">Reason:</option> 
     <option value="NoShow">No Show</option> 
     <option value="Unfixable">Unfixable</option> 
     <option value="other">Other</option> 
     </select><br><br> 
     <br> 
     <input type="submit" value="submit" id=submitButton> 
    </div> 
</form> 

現在的代碼退出頁面時的作品。我無法弄清楚的部分是要更改代碼的位置,以確定表單已填寫,關閉頁面爲「確定」。

在此先感謝您的幫助!

+0

「如果您離開此頁面,此學生將被標記爲放棄,您確定嗎?」 – Will

回答

0

順便說一下,在對話框中顯示的自定義消息是deprecated on Chrome而您不能阻止此人離開頁面。

至於你的驗證,我建議你看看jQuery Validation

然後提交您可以檢查表單是否有效。

$('form').submit(function() { 
    var valid = $(this).valid(); 
    // Do stuff. 
});