我的rails应用程序遇到了一些问题。当用户输入数据然后尝试通过任何方式离开页面(提交除外),我希望它提示他们确认离开页面。这是我到目前为止的代码,它在一定程度上起作用。如果用户填写了一些数据,然后点击“提交”,系统仍会提示他们确认离开该页面。如果他们选择留在页面上,然后再次点击“提交”,它将按预期工作。
var clean;
var submitted = false;
$(function(){
clean = $("form").serialize();
});
window.onbeforeunload = function(){
$("form").submit(function() {
submitted = true;
});
var dirty = $("form").serialize();
if (dirty != clean && !submitted) {
return "You have unsaved data that will be lost if you leave the page.";
}
};
当用户尝试关注页面上的某个链接(不仅仅是关闭它等)时,我也希望出现提示。我正在使用jquery-turbolinks,但它似乎仍然没有选择那些事件。
任何有关这些问题的帮助都将不胜感激!
答案 0 :(得分:0)
这是一个可能的解决方案:
<script type="text/javascript">
$(document).ready(function() {
var isEdit = false;
$('input').change(function() {
isEdit = true;
});
function checkIsEdit() {
if(isEdit)
return "You have modified some content. Please save this form.";
}
window.onbeforeunload = checkIsEdit;
$(document).submit(function(){
isEdit = false;
});
});
</script>
(基于http://www.webstuffshare.com/2010/03/code-snippet-jquery-confirm-before-exit/)