使这个JavaScript更有效率?

时间:2013-11-18 10:49:36

标签: javascript login constructor

我有这个使用构造函数的基本javascript,验证登录字段不能为空的表单。所有这些都没有使用任何js库。到目前为止,我已经提出了这个......

function Validator(txtbox) {
    this.txtbox = txtbox;
}

var validator = new Validator([ "username", "password"]);

Validator.prototype.validate = function(form) {
    for(var i = 0, l=this.txtbox.length; i < l; i++) {
        var status = document.getElementById("status-msg");
        if (form[this.txtbox[i]].value == 0) {
            status.innerHTML="The " + form[this.txtbox[i]].name + " is empty";
            status.style.display = "inline-block"
            status.className = "error";
            return false;
        }
        else {
             status.innerHTML="Login successful";
            status.style.display = "inline-block"
             status.className = "success";
        }
    }
}

function runValidate(form) {
    validator.validate(form);
}

我想知道如何才能提高效率?或者任何建议如何让这更好,将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:2)

您可以移动DOM遍历,在遍历循环之外找到“status-msg”元素。

var status = document.getElementById("status-msg");

for(var i = 0, l=this.txtbox.length; i < l; i++) {...}

现在,您正在为每个要验证的字段遍历DOM。