有onbeforeunload的问题。我有一个长形式通过jquery向导插件分成几段。我需要弹出一个确认对话框,如果你回击,刷新,关闭等任何一步,但需要它不点击提交按钮弹出确认对话框。让它工作,或者至少我想,现在不行。
<script type="text/javascript">
var okToSubmit = false;
window.onbeforeunload = function() {
document.getElementById('Register').onclick = function() { okToSubmit = true; };
if(!okToSubmit) return "Using the browsers back button will cause you to lose all form data. Please use the Next and Back buttons on the form";
};
</script>
'注册'是提交按钮ID。请帮忙!
答案 0 :(得分:0)
问题是onclick
事件处理程序不会在if(!okToSubmit)
之前调用。当你说:
document.getElementById('Register').onclick = function() { okToSubmit = true; };
只是设置事件处理程序。您实际上并没有检索okToSubmit
的值。
解决此问题的一种方法可能是在注册onclick
之前设置onbeforeunload
事件处理程序。
答案 1 :(得分:0)
普通的旧JS语法有点生疏,所以这里是jQuery,如果有人需要它,这是有效的,至少对于表单提交按钮。改变方法以获得是否符合您的需求
<script type="text/javascript">
$(document).ready(function(){
var action_is_post = false;
$("form").submit(function () {
action_is_post = true;
});
window.onbeforeunload = confirmExit;
function confirmExit()
{
if (!action_is_post)
return 'Using the browsers back, refresh or close button will cause you to lose all form data. Please use the Next and Back buttons on the form.';
}
});
</script>