2016-09-15 108 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. 
});