除非单击提交按钮,否则页面退出通知

时间:2016-09-15 20:24:59

标签: javascript html forms onbeforeunload

目前在我的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>

退出页面时,代码现在正常工作。我无法弄清楚的部分是要改变什么来代码,弄清楚表格已填写完毕,并且它是&#34; OK&#34;关闭页面。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

顺便说一下,在对话框中显示自定义消息为deprecated on Chrome,您无法阻止此人离开该页面。

关于您的验证,我建议您查看jQuery Validation

然后在提交时,您可以检查表格是否有效。

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