• 离开页面提示是否保存页面修改内容的简单实现


    在很多系统中如果我们修改了某些信息,没有保存就离开当前的页面,系统通常会提示“信息发生变化,是否要保存”等;比如当你改变了QQ中的个人基本资料,没有点“确认”或“应用”按钮,而是直接“取消”,系统会提示“您已经对设置做了修改,是否保存?”这类友好的提示在客户体验上为软件/系统增色不少,那么这类功能究竟如何实现呢?下面介绍一种简单的方式,即通过JS来控制,看下面的代码:

    Html代码 收藏代码

    1. <script type="text/javascript" src="js/jquery.js"></script>
    2. <script type="text/javascript">
    3.         var changeFlag=false;  
    4.         //标识文本框值是否改变,为true,标识已变   
    5.         $(document).ready(function(){  
    6.              //文本框值改变即触发       
    7.             $("input[type='text']").change(function(){  
    8. changeFlag=true;       
    9.             });   
    10.             //文本域改变即触发  
    11.             $("textarea").change(function(){  
    12. changeFlag=true;       
    13.             });   
    14.         });  
    15.          //离开页面时保存文档     
    16. window.onbeforeunload = function() {  
    17.              if(changeFlag ==true){  
    18.                 //如果changeFlag的值为true则提示   
    19.                 if(confirm("页面值已经修改,是否要保存?")){  
    20.                     //处理信息保存...  
    21.                     alert("即将执行保存操作...");  
    22.                 }else{  
    23.                     //不保存数据...  
    24.                     alert("不保存信息...");  
    25.                 }  
    26.              }  
    27.          }   
    28. </script>

    上面的代码中先定义了一个标志位"changeFlag",然后通过Jquery设置当页面中的"文本框"和"文本域"在发生变化时改变标志位"changeFlag"的值为true,最后当页面发生跳转(如form表单提交、超链接等)时,window.onbeforeunload就开始验证标志位"changeFlag"的值,以给出相应的提示信息!

    其中window.onbeforeunload是在页面刷新或关闭时调用,是正要去服务器读取新的页面时调用,此时还没开始读取;

    页面body部分代码如下:

    Html代码 收藏代码

    1. <body>
    2. <form action="">
    3.             帐号:<input type="text" name="username"/><br/>
    4.             密码:<input type="text" name="password"/><br/>
    5.             备注:<textarea rows="3" cols="17"></textarea>
    6. <input type="submit" value="提交"/>
    7. </form>
    8. <a href="http://www.pihai.me">屁孩</a>
    9. </body>

    当页面“帐号”、“密码”、“备注”三项中的任意一项发生变化之后刷新、提交、点链接都会进行提示!其他单选按钮、复选框等自行修改之即可!

    更多信息请访问屁孩博客

  • 相关阅读:
    Chrome应用商店打不开解决方法
    vue中的列表项删除操作
    markdown(语法)入门学习:
    利用插件(jQuery-ui.js)实现表格行的拖拽排序
    div拖拽互换位置(vue)
    MarkDown学习
    经典算法精讲精练之回溯法求解0-1背包问题
    读书笔记——《谁说菜鸟不会数据分析—Python篇》
    读书笔记之《统计之美:人工智能时代的科学思维》
    读书笔记之《漫画算法:小灰的算法之旅》
  • 原文地址:https://www.cnblogs.com/chen110xi/p/2512112.html
Copyright © 2020-2023  润新知