- 浏览: 2678829 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
80后的童年2:
深入浅出MongoDB应用实战开发网盘地址:https://p ...
MongoDB入门教程 -
shliujing:
楼主在不是精通java和php的前提下,请不要妄下结论。
PHP、CakePHP哪凉快哪呆着去 -
安静听歌:
希望可以一给一点点注释
MySQL存储过程之代码块、条件控制、迭代 -
qq287767957:
PHP是全宇宙最强的语言!
PHP、CakePHP哪凉快哪呆着去 -
rryymmoK:
深入浅出MongoDB应用实战开发百度网盘下载:链接:http ...
MongoDB入门教程
添加如下JavaScript:
上面的代码将表单的原始值以一个名为"_value"的attr保持在input和select标签上
window.onbeforeunload时判断form是否更改过并给出提示。
需要在具体某个页面里添加如下代码来绑定表单原始值:
$.fn.enable_changed_form_confirm = function () { var _f = this; $('input[@type=text]', this).each(function() { $(this).attr('_value', $(this).val()); }); $('input[@type=password]', this).each(function() { $(this).attr('_value', $(this).val()); }); $('textarea', this).each(function() { $(this).attr('_value', $(this).val()); }); $('input[@type=checkbox]', this).each(function() { var _v = ''; if(this.checked == true) { _v = 'on'; } else { _v = 'off'; } $(this).attr('_value', _v); }); $('input[@type=radio]', this).each(function() { var _v = ''; if(this.checked == true) { _v = 'on'; } else { _v = 'off'; } $(this).attr('_value', _v); }); $('select', this).each(function() { $(this).attr('_value', this.options[this.selectedIndex].value); }); $(this).submit(function() { window.onbeforeunload = null; }); window.onbeforeunload = function() { if(is_form_changed(_f)) { return "You will lose any unsaved content."; } } } function is_form_changed(f) { var changed = false; $('input[@type=text]', f).each(function() { var _v = $(this).attr('_value'); if(typeof($(this).attr('_value')) == 'undefined') { _v = ''; } if(_v != $(this).val()) { changed = true; } }); $('input[@type=password]', f).each(function() { var _v = $(this).attr('_value'); if(typeof($(this).attr('_value')) == 'undefined') { _v = ''; } if(_v != $(this).val()) { changed = true; } }); $('textarea', f).each(function() { var _v = $(this).attr('_value'); if(typeof($(this).attr('_value')) == 'undefined') { _v = ''; } if(_v != $(this).val()) { changed = true; } }); $('input[@type=checkbox]', f).each(function() { var _v = ''; if(this.checked == true) { _v = 'on'; } else { _v = 'off'; } if($(this).attr('_value') != _v) { changed = true; } }); $('input[@type=radio]', f).each(function() { var _v = ''; if(this.checked == true) { _v = 'on'; } else { _v = 'off'; } if($(this).attr('_value') != _v) { changed = true; } }); $('select', f).each(function() { var _v = $(this).attr('_value'); if(typeof($(this).attr('_value')) == 'undefined') { _v = ''; } if(_v != this.options[this.selectedIndex].value) { changed = true; } }); return changed; }
上面的代码将表单的原始值以一个名为"_value"的attr保持在input和select标签上
window.onbeforeunload时判断form是否更改过并给出提示。
需要在具体某个页面里添加如下代码来绑定表单原始值:
$().ready(function() { $('form').enable_changed_form_confirm(); });
评论
4 楼
bosschen
2013-11-05
试试 看能不能用
3 楼
birdjavaeye
2008-07-21
还是太复杂。当时在CMS上用得方法是,页面onload时,用jquery的一个叫啥子的函数(忘了)把form编码成字符串,存在一个变量里。然后在 onbeforeunload中再次编码,判断不等,就提示。
2 楼
hideto
2007-11-17
nice, thx!
1 楼
jctr
2007-11-16
jQuery支持多个DOM一起选择,不介意我帮您做了简单的修改,但愿意没变,其实我一直关注您在RoR方面的文章。
$.fn.enable_changed_form_confirm = function () { var _f = this; $(':text, :password, textarea', this).each(function() { $(this).attr('_value', $(this).val()); }); $(':checkbox, :radio', this).each(function() { var _v = this.checked ? 'on' : 'off'; $(this).attr('_value', _v); }); $('select', this).each(function() { $(this).attr('_value', this.options[this.selectedIndex].value); }); $(this).submit(function() { window.onbeforeunload = null; }); window.onbeforeunload = function() { if(is_form_changed(_f)) { return "You will lose any unsaved content."; } } } function is_form_changed(f) { var changed = false; $(':text, :password, textarea', f).each(function() { var _v = $(this).attr('_value'); if(typeof(_v) == 'undefined') _v = ''; if(_v != $(this).val()) changed = true; }); $(':checkbox, :radio', f).each(function() { var _v = this.checked ? 'on' : 'off'; if(_v != $(this).attr('_value')) changed = true; }); $('select', f).each(function() { var _v = $(this).attr('_value'); if(typeof(_v) == 'undefined') _v = ''; if(_v != this.options[this.selectedIndex].value) changed = true; }); return changed; } $(function() { $('form').enable_changed_form_confirm(); });
发表评论
-
Ext源码解析:3, DomHelper.js
2008-07-15 16:45 2433from http://www.beyondrails.com ... -
Ext源码解析:2, DomQuery.js
2008-07-11 10:54 2619fromhttp://www.beyondrails.com/ ... -
Ext源码解析:1, Ext.js
2008-07-09 18:08 2938来自http://www.beyondrails.com/bl ... -
Extjs Introduction
2008-07-08 02:04 8827from http://hideto.beyondrails. ... -
模拟Ajax提交上传文件
2008-06-04 00:24 4226XMLHTTP不支持文件上传这种form提交,但是我们可以模拟 ... -
escape JavaScript
2008-03-27 16:55 2651单引号、双引号、<script></scri ... -
Multiple IE
2007-11-22 10:35 2560老问题,js和css对跨浏览器兼容问题 在一台电脑上共存IE3 ... -
正确使用Prototype,节省额外的100K
2007-11-10 23:20 3090Part I: http://thinkweb2.com/pr ... -
十大Web应用漏洞清单,XSS排名第一
2007-10-22 12:36 3114owasp.org列出十大Web应用漏洞清单: 1, Cros ... -
IE下不能disabled掉select标签的option的解决方案
2007-10-11 17:48 9026原文:Select, Option, Disabled And ... -
Jester: JavaScript Client for REST
2007-09-04 13:51 2723Jester: JavaScriptian REST介绍了Je ... -
ASCB阅读笔记五、Arrays
2007-08-23 10:47 1816var array:Array = new Array() ... -
ASCB阅读笔记四、Numbers and Math
2007-08-15 12:08 2021显示最近的整数(四舍五入) Math.round(204.49 ... -
ASCB阅读笔记三、Runtime Environment
2007-08-10 23:34 25151,检测用户浏览器安装的Flash Player版本 http ... -
ASCB阅读笔记二、Custom Classes
2007-08-09 10:54 13731,ActionScript 3.0已经完全OO,所有AS代码 ... -
ASCB阅读笔记一、ActionScript Basics
2007-08-07 23:29 20491,使用trace来debug程序 package { ... -
method_missing in ActionScript 3/Flex
2007-08-07 18:05 2005method_missing in ActionScript ... -
Hilog 0.1 released.
2007-08-07 00:52 2086Hilog 0.1 release is a demo of ... -
在客户端保存状态
2007-08-05 18:13 3775Keeping State on the Client 在第 ... -
介绍Cairngorm
2007-08-05 15:36 19716Cairngorm是Adobe Labs上的Flex MVC框 ...
相关推荐
标题中的“离开页面时候的警告”指的是在用户尝试离开一个网页时,网页通过JavaScript或者其他技术显示的提示信息,通常用于确认用户是否真的想要离开,或者提醒用户保存未完成的工作。这种功能常见于在线表单填写、...
当用户在表单上进行编辑后试图离开页面时,系统会弹出一个提示,询问他们是否确认离开,这样可以防止用户错失保存修改的机会。 首先,我们需要理解JavaScript的`window.onbeforeunload`事件。这是一个在浏览器窗口...
在jQuery中实现一个页面内的编辑对话框是一种常见的交互设计,它可以提供用户友好的界面来编辑数据,而无需离开当前页面。下面将详细讲解如何在页面中创建这样的功能,并结合给出的"弹出编辑框是实例"这个压缩包文件...
在现代的网络浏览体验中,页面在用户尝试离开时进行提示是一个常见的功能,尤其是当用户在填写表单或进行一些编辑工作而未保存时。这种功能的目的是防止用户的未保存数据在意外或不小心离开页面时丢失。本文将介绍...
3. 当用户完成编辑并离开单元格(通过`blur`事件)时,发送AJAX请求到ASP.NET服务器,更新后台数据库。 4. 在服务器端处理这些请求,验证数据,更新数据库,并根据需要返回响应。 5. 如果需要,还可以使用jQuery的...
这个开源项目旨在帮助开发者在用户尝试离开页面或者刷新时提醒他们保存未完成的表单更改,从而避免了潜在的数据丢失问题。 **jQuery.dirtyforms 主要功能** 1. **实时监测表单变化**:`jQuery.dirtyforms` 持续...
输入`.fun`,则会提示jQuery中的方法,如`.click()`、`.fadeIn()`等。 2. **代码片段**:插件还提供了一些常用的jQuery代码片段,如`.append()`、`.hide()`、`.show()`等,通过快捷键或在“插入”菜单中选择,可以...
1. 用户离开页面检测:如果用户长时间未进行任何操作,可以假设他们可能已经离开了,此时可以清理资源、更新页面状态或发送离开页面的统计数据。 2. 自动保存草稿:在编辑器或表单中,可以设置idletimer来定期保存...
- 数据保存:在编辑表单后,用户离开页面时出现对话框,询问是否保存更改。 - 提示信息:显示重要的通知或警告信息,确保用户看到并作出反应。 ### 五、使用示例 在实际项目中,首先需要引入jQuery库和对话框插件...
jqZoom是一款图片预览插件,它可以实现鼠标悬停时的放大效果,让用户在不离开页面的情况下查看产品细节,广泛应用于电商网站。 9. **jUEditor.rar** jUEditor是一个强大的富文本编辑器,它提供了丰富的编辑功能,...
当用户离开当前页面时触发。可用于保存用户状态、清理资源等。 ```javascript $(window).unload(function(){ // 页面即将关闭前的处理逻辑 }); ``` #### 10. `onFocus`:获得焦点事件 元素获得焦点时触发。如...
3. **表单验证**:在提交表单前,模态层可以显示验证提示,帮助用户及时修正错误,提高表单提交的成功率。 总的来说,"Jquery弹出可拖动Div模态层源码20121130"是实现网页动态效果和增强用户体验的有效工具。通过...
jquery-泡泡一个 JQuery 小部件,用于在弹出气泡(又名工具提示)中显示任何表单元素的上下文相关信息。 气泡可以附加到任何元素并自动定位以考虑页面和页面滚动上的目标元素位置,以便它们始终在页面上可见。 气泡...
同时,他们也可能使用AJAX技术来异步提交数据,这样用户无需离开页面就可以继续添加或编辑商品,提升了用户体验。 在提供的文件列表中,“使用帮助.txt”可能是对如何使用这段代码的详细说明,包括如何引入jQuery库...
在本文中,我们将深入探讨如何使用jQuery实现一个动态的登录注册框切换效果。...我们先来解析标题和描述,然后逐步介绍相关的...当然,实际应用中可能还需要考虑表单验证、错误提示等功能,但这些在此基础上进行扩展即可。
要实现Ctrl+Enter快捷键提交表单,首先需要确保页面中引入了JQuery库,因为下面的代码依赖于这个库。JQuery可以简化对DOM的操作,并且其提供的事件监听和处理机制可以很方便地捕捉键盘事件。 HTML部分定义了文本...
2. `onBeforeUnload`:在页面内容即将改变时触发,常用于确认是否离开页面。 3. `onError`:捕获页面加载过程中的错误,如脚本错误或外部数据引用错误。 4. `onLoad`:页面完全加载完成后触发,包括外部文件加载完成...
12. onBeforeUnload:页面即将被卸载或导航离开时触发,常用于确认对话框。 13. onError:捕捉到页面加载过程中的错误,如脚本错误或资源加载失败。 14. onLoad:整个页面加载完成时触发,包括所有外部资源。 15. ...
3. **导航菜单**:当鼠标悬停在菜单项上时,显示子菜单,离开时隐藏,增加互动性。 4. **购物车**:用户添加商品到购物车时,实时更新购物车数量,无需跳转页面。 5. **模态框**:在用户触发特定操作时,如删除...
当用户完成编辑并离开文本框或按下回车键时,代码会通过AJAX发送一个请求到服务器,以更新数据库中的相应数据。 1. **jQuery选择器与事件绑定**: - `$(".caname").click(function() {...})`:这段代码监听所有...