使这个JavaScript更有效率

making this javascript more efficient?

本文关键字:有效率 JavaScript      更新时间:2023-09-26

我有一个基本的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);
}

我想知道如何提高效率?或者任何建议,我将不胜感激。

谢谢

您可以将 DOM 遍历移动到循环之外,该遍历查找"status-msg"元素。

var status = document.getElementById("status-msg");
for(var i = 0, l=this.txtbox.length; i < l; i++) {...}

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