0

我正在尝试编写一个小型 JS 验证库,为了好玩和学习 JS。这个想法是遍历表单标签中的元素,并根据其他自定义属性检查输入元素是否有效。

我现在被困在如何使用元素来调用同一“原型”中的函数

这是基于我正在尝试开发的教程,如果 SE 政策需要提及此代码的来源,请告诉我

将使用此函数从 html doc 调用代码

<script type="text/javascript">
    function processForm() {
        _('form1').validate();
    }
</script>

这是库代码:

function _(id) {
if (id) {
    if (window === this) {
        return new _(id);
    }

    // We're in the correct object scop:
    // Init our element object and return the object
    this.e = document.getElementById(id);
    return this;
} else {
    return "NO ID PARAM WAS GIVEN";
}
}
_.prototype = {
validate    :function () {
                try {
                    var elem = this.e.elements;
                    for(var i = 0; i < elem.length; i++){
                        //alert(elem[i].getAttribute("id"));
                        // STUCK HERE, how to call the bgcolor function of this prototype
                        so i can change the bgcolor for the current elem of the loop ?
                    }
                }
                catch(err)
                {
                    alert(err.message);
                }
            },  

bgcolor: function (color) {
            this.e.style.background = color;
            return this;
        },
};
4

1 回答 1

1

可能是这样的:

for (var i = 0; i < elem.length; i++){
    this.bgcolor(elem[i], "red");
}

bgcolor: function (el, color) {
    el.style.background = color;
    return this;
}

或者可能是一个默认为 的可选元素,this与您在表单本身上运行的现有代码保持同步。

bgcolor: function (color, el) {
    el = el || this;
    el.style.background = color;
    return this;
}
于 2013-04-19T14:26:11.143 回答