zoukankan      html  css  js  c++  java
  • js检测输入域的值是否变化

    场景:

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

    初始值情景:

      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^)/

  • 相关阅读:
    点燃圣火! Ember.js 的初学者指南
    加班10天的过程
    创建SVN仓库的步骤
    OpenTSDB/HBase的调优过程整理
    HBase数据压缩算法编码探索
    解决修改css或js文件后,浏览器缓存未更新问题
    Debian 9 Stretch国内常用镜像源
    ELK填坑总结和优化过程
    elk中es集群web管理工具cerebro
    Kafka集群管理工具kafka-manager的安装使用
  • 原文地址:https://www.cnblogs.com/xtreme/p/9390771.html
Copyright © 2011-2022 走看看