场景:

  用户在新建或编辑表单数据时,操作关闭按钮,如果有输入项已经变动时,提示用户存在信息变更,是否放弃当前操作。

初始值情景:

  1、通过原生的value指定,如: <input value='26'/>

  2、通过js脚本设置(如前端框架组件初始化),如: document.querySelector('input').value = '26'

先提供初始化"初始值"及检测值变动的原生js脚本(依赖jquery):

/**
* 初始化初始值
* @param ctn: 初始化范围,默认document
**/
function initInputs(ctn){
ctn = ctn || document;
$(':input',$(ctn)).each(function(idx,domItem){
domItem.setAttribute('value',domItem.value);
});
}
/**
* 检测值是否已变更
* @param ctn: 初始化范围,默认document
* @return boolean: true-有变动、 false-无变动
**/
function chargeInputs(ctn){
ctn = ctn || document;
var isChanged = false;
$(':input',$(ctn)).each(function(idx,domItem){
var originalValue;
if(domItem.attributes.value) originalValue = domItem.attributes.value.value;
if(domItem.value != originalValue) isChanged = true;
});
return isChanged;
}

何时调用初始化"初始值"脚本?

  一般情况,在执行完输入域的初始设值之后调用initInputs即可;

  如果项目中用到了前端框架,以easyui为例,需要在组件解析完成时调用initInputs,如下:

$.parser.onComplete=function(context){
initInputs(context);
}

完毕 \(^o^)/

js检测输入域的值是否变化的更多相关文章

  1. vuejs2.0与1.x版本中怎样使用js实时访问input的值的变化

    vuejs 2.0中js实时监听input 在2.0的版本中,vuejs把v-el 和 v-ref 合并为一个 ref 属性了,可以在组件实例中通过 $refs 来调用.这意味着 v-el:my-el ...

  2. js 检测输入内容是否为空(小程序,网站)

    一.输入内容只要有空格就会返回true if(/\s*/.test(data)){ return true }else{ return false } 二.先替换掉空格,更利于赋值或者判断 1.需要判 ...

  3. oninput和onpropertychange实时监听输入框值的变化

    oninput和onpropertychange实时监听输入框值的变化 传统监听输入框的做法就是使用keyup.keydown.keypress,或者change事件来实现,但keyup.keydow ...

  4. JS数量输入控件

    JS数量输入控件 很早看到kissy首页 有数量输入控件,就随便看了下功能 感觉也不怎么难 所以也就试着自己也做了一个, 当然基本的功能和他们的一样,只是用了自己的编码思想来解决这么一个问题.特此给大 ...

  5. jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化

    jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化 js监听输入框值的即时变化 网上有很多关于 onpropertychange.oni ...

  6. js判断输入是否为数字的具体实例

    这篇文章介绍了js判断输入是否为数字的具体实例,有需要的朋友可以参考一下 <html xmlns="http://www.3lian.com/"> <head&g ...

  7. js实时监听input中值得变化

    <!DOCTYPE html> <html> <head> <title>zepto</title> <meta name=" ...

  8. VUE实现Studio管理后台(完结):标签式输入、名值对输入、对话框(modal dialog)

    一周的时间,几乎每天都要工作十几个小时,敲代码+写作文,界面原型算是完成了,下一步是写内核的HTML处理引擎,纯JS实现.本次实战展示告一段落,等RXEditor下一个版本完成,再继续分享吧.剩下的功 ...

  9. 设置输入域(input/textarea)中文本光标的位置

    以前记录了一篇 将光标定位于输入框最右侧的实现方式 ,实现光标定位在文本的最末.这种需求往往在修改现有的文本.有时可能还需要把光标定位在首位,或者中间某个位置,这就需要实现一个更通用的方法. 这个方法 ...

随机推荐

  1. Ubuntu16.04下安装OpenCV2.4.13

    软件版本 Ubuntu 16.04; OpenCV 2.4.13 安装步骤 1.首先安装一些编译工具 # 安装编译工具 sudo apt-get install build-essential # 安 ...

  2. html 之 <meta> 标签之http-equiv

    语法规则: <meta http-equiv=“参数” content=“参数值” > 1.X-UA-Compatible 文档兼容模式的定义 <meta http-equiv=“X ...

  3. FileMaker应用场景思考

    大型企业有自己强大的IT队伍,但一些小需求没人理,小企业只有网管或没有专门的IT. 一般个人记录或处理数据时,Excel很够用了,但一个Team,Excel就明显有问题了,比如共享.权限控制?最简单的 ...

  4. Java笔试面试题整理第四波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51274685 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  5. 502 Bad Gateway

    状态码解释: 502 Bad Gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应. 502 原因分析: 将请求提交给网关如php-fpm执行,但是由于某些原因没有 ...

  6. python-web自动化-元素定位

    # -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By # ...

  7. SpringMVC之DispatcherServlet类图

    DispatcherServlet类图 在IntelliJ IDEA 中打开其源码,然后右键查看Diagrams,工具会自动生成其类图. 可是直观的看出,DispatcherServlet本质上是Se ...

  8. ORACLE重装之后恢复数据库,相当于sqlserver的附加数据库

    在开发机器上经常会遇到重装系统的问题,重装之前如果ORACLE没有及时备份的话重装之后就纠结了,数据还原很头疼. 各种娘中只能找到一些ORACLE安装与重装系统前目录相同的解决办法,目录不同就没招了. ...

  9. 使用ContentProvider实现多应用的数据共享

    ContentProvider: 实现一组通用的数据和方法的储存和共享,通常是通过getContentResolver()方法来获得Activity或其他应用程序组件中的ContentProvider ...

  10. Vue开源项目汇总(史上最全)(转)

    目录 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element ★13489 - 饿了么出品的Vue2的web UI工具套件 Vux ★8133 - 基于Vue和 ...