Web探索|Asp.net||Jquery|MVC

Web前沿技术、移动解决方案
  博客园  :: 首页  :: 新随笔  :: 管理

验证表单元素值是否发生改变

Posted on 2012-09-01 18:37  reckcn  阅读(193)  评论(0编辑  收藏  举报
/*说明:解决IE6下下拉框Bug赋值问题
*/
$.SelectVal=function (sel, val) {
    if ($.browser.msie && $.browser.version == "6.0") {
        setTimeout(function () {
            sel.val(val);
        }, 1);
    } else {
        sel.val(val);
    }
}
/*说明:验证表单元素值是否发生改变
*/
$.isFormChanged = function (el, filter) {
    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;
};