zoukankan      html  css  js  c++  java
  • 判断一个表单是否被修改过

    判断一个表单是否被修改过,在不少地方需要用到。
    例如,用户打开一个订单编辑页,过一会后,他要关闭页面,
    如果用户有修改,那最好能提示下他“请问您确定要离开本页吗?确认离开当前页面吗?/n未保存的数据将会丢失!/n请按“确定”以继续,或者按“取消”回到当前页。”
    如果用户没有修改,则不用提醒。

    QWrap里提供了一个判断form是否已有改变的方法,代码如下:
    View Code
    /**
    * 判断form的内容是否有改变
    * @method isFormChanged
    * @param {element} el form对象
    * @param {string} filter (Optional) 过滤函数,会被循环调用传递给item作参数要求返回布尔值判断是否过滤
    * @return {bool} 是否改变
    */
    var isFormChanged= function (el, filter) {

    el = g(el);

    filter = filter || function (el) { return false; };

    var els = el.elements, l = els.length, i = 0, j = 0, el, opts;

    for (; i < l ; ++ i, j = 0) {
    el = els[i];

    switch (el.type) {
    case "text":
    case "hidden":
    case "password":
    case "textarea":
    if (filter(el)) break;
    if (el.defaultValue != el.value) return true;
    break;
    case "radio":
    case "checkbox":
    if (filter(el)) break;
    if (el.defaultChecked != el.checked) return true;
    break;
    case "select-one":
    j = 1;
    case "select-multiple":
    if (filter(el)) break;
    opts = el.options;
    for (; j < opts.length ; ++ j) {
    if (opts[j].defaultSelected != opts[j].selected) return true;
    }
    break;
    }
    }

    return false;
    };

    它的第一个参数是form对象。返回值是这个表单是否与load页面时的值的状态是否有变更。
    第二个参数是:是为了应对“某些元素值就算是变了,也当作未变”的需求。

  • 相关阅读:
    图片匹配大全(转载)
    《上游》笔记
    《不可能的技艺:巅峰表现入门》笔记
    《硅谷钢铁侠》笔记
    《火线上的适应:战争时期的军事变革》笔记
    《金钱心理学:财富、贪婪和幸福的永恒教训》笔记
    流量中提取文件的若干种方法
    《重新思考:知道你不知道什么的力量》笔记
    《史蒂夫·乔布斯传》笔记
    “利润”究竟是什么
  • 原文地址:https://www.cnblogs.com/xffy1028/p/2344332.html
Copyright © 2011-2022 走看看