包含jsnochange的词条

本文目录一览:

js判断table元素中元素值是否改变,若未改变返回false, table中包含input和select元素,贴段代码上来

你的追问里面的代码,去掉第一个return false;这一句在循环里面,基本上都能执行到的,你自己想想。另外,你的function的{}没匹配,最后漏了},在check_change最后加多一个return true,默认有变化,因为你前面做了所有变化情况的判断,返回false,只要它能执行到最后,就一定是有变化了。

下面是修改:

function check_change() {

var inplen = document.getElementById(“table”).getElementsByTagName(“input”).length;

var input = document.getElementById(“table”).getElementsByTagName(“input”);

var customer = document.getElementById(“customer”);

var curCR = customer.options[customer.options.selectedIndex].value;

var remark = document.getElementById(“remark”);

for (var a = 0; a inplen; a++) {

//有变化立刻返回true

if (input[a].value != input[a].defaultValue) {

return true;

}

//return false;

}

//到这里,全部都没变化了,返回false

if (customer[0].value == curCR remark.value == remark.defaultValue) {

alert(“No change to save !”);

return false;

}

//上面都跑过,那就是有变化了

return true;

} //你漏了这个

No change是什么意思及反义词

no change

[词典] 无变化; 缩写词为NA;

[例句]I have told them with absolute certainty there’ll be no change of policy

我已经十分肯定地告诉他们,政策不会变。

我自己写的JS函数:为什么无法响应点击事件呢?

onload = *而不是onload()=*

在有些浏览器,脚本是和正文分开加载的,你这个document.getElementsByTagName(“input”);返回有可能没有值,

首先写一个简单的ready函数

// 只接受函数作为参数,每调用一次,存一个函数,当页面载完,一次自动执行

// ready(yourfunction)

var ready=(function () {

        var isReady = false,

            funList = [];

        function r(fn) {

            typeof fn !== “function” || (isReady ? fn() : funList.push(fn))

        }

        function readyCall() {

            isReady = true;

            while (funList.length) {

                funList.shift()()

            }

        }

        if (document.addEventListener) {

            document.addEventListener(“DOMContentLoaded”, function () {

                document.removeEventListener(“DOMContentLoaded”, arguments.callee, false);

                readyCall()

            }, false)

        } else if (document.attachEvent) {

            document.attachEvent(“onreadystatechange”, function () {

                if (document.readyState === “complete”) {

                    document.detachEvent(“onreadystatechange”, arguments.callee);

                    readyCall()

                }

            })

        }

        return r

    }

        () )

再写一个绑定事件的函数

/**

 * bind(target, event name, event function)

 * bind(控件,事件名称(如”click”不带on),事件函数)

 * 注意,事件函数,就算在ie,也会强推一个event作为第一个参数

 * 为了兼容旧版本浏览器,preventDefault preventDefault 简单的写了些,不够完 

 * 还望海涵

 */    

var bind = function (el, name, fn) {

    if (el.addEventListener) {

        el.addEventListener(name, fn);

    } else {

        name = “on” + name;

        if (el.attachEvent) {

            el.attachEvent(name, function () {

                var args = Array.prototype.slice.call(arguments), ret = true;

                if (window.event) {

                    args.unshift(window.event);

                    if (!event.preventDefault)

                        event.preventDefault = function () {

                            ret = false;

                        };

                    if (!event.stopPropagation)

                        event.stopPropagation = function () {

                            event.cancelBubble = true;

                        };

                }

                fn.apply(this, args);

                return ret;

            });

        } else {

            var old = el[name], noFunc = typeof old !== “function”, noList = noFunc || !old.list, call;

            if (noList) {

                call = el[name] = function (event) {

                    var list = call.list, l = list.length,

                            args = Array.prototype.slice.call(arguments), ie = !!window.event,

                            ret = true, run = true;

                    if (!event.preventDefault)

                        event.preventDefault = function () {

                            ret = false;

                        };

                    if (!event.stopPropagation)

                        event.stopPropagation = function () {

                            run = false;

                        };

                    if (ie)args.unshift(event);

                    while (l–  run)

                        list[i].apply(this, args);

                    return ret;

                };

                call.list = [];

                if (!noFunc)call.list.push(old);

            }

            call.list.push(fn);

        }

    }

};

时间关系,没写解绑函数

再来一个寻找控件的函数

    /**

     * trans(“#id”) trans(“.class”) trans(“$name”) trans(“tagName”)

     */

    function trans(el){

        var c;

        c = el.charAt(0);

        c = c.match(/^[#\.\$]/)?c:””;

        return typeof el===”object” 

                Object.prototype.toString.call(el).match(/\[object HTML.*Element\]/)?el

                : typeof el===”string” 

                (el=(document[

                        [“getElementById”,”getElementsByClassName”,”getElementsByName”,”getElementsByTagName”]

                                [{“#”:0,”.”:1,”$”:2,””:3}[c]]])(el.substring(c?1:0)),c?[el]:el.length)?el:null;

    }

然后再轻松的绑定事件

    ready(function(){

        var fruit = trans(“input”);

        //初始化

        for(var i=0;ifruit.length-4;i=i+2)

            fruit[i+1].disabled=”disabled”;

        

        //添加事件

        for(var i=0;ifruit.length-4;i=i+2)

        

            bind(fruit[i],”click”,(function(fruit,value){

                return function(event){

                    if(fruit.id === value)fruit.removeAttribute(“disabled”);

                };             

            }(fruit[i],fruit[i].value)));//注意,这里直接把fruit[i].value,和fruit[i]传给事件闭包,就不容易和其他变量混淆了。

    });

原创文章,作者:XIIT,如若转载,请注明出处:https://www.506064.com/n/150077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
XIITXIIT
上一篇 2024-11-07 09:49
下一篇 2024-11-07 09:49

相关推荐

发表回复

登录后才能评论