更好的替代方案,以了解控件在JavaScript中是否有效?

时间:2012-04-13 05:25:47

标签: javascript jquery asp.net

我想知道JavaScript中的控件是否有效。在Asp.Net中是否有可用的直接客户端API,它可以告诉我控件是否有效?

EG。如果我有2个验证器附加到文本框,我需要一个函数,可以告诉我文本框是否有效。如果即使1个验证器无效,那么它应该返回false。

我似乎找不到能给我这个功能的功能。这是我写的一个小帮手,它完成了这项工作,但效率很低:

function isControlValid(control) {
    for (i = 0; i < Page_Validators.length; i++) {
        var validator = Page_Validators[i];
        var controlId = validator.controltovalidate;
        if ($(control).attr('id') == controlId && validator.isvalid == false) {
            return false;
        }
    }
    return true;
}

有人有更好的选择吗?

1 个答案:

答案 0 :(得分:1)

以下代码应该有效。

function isControlValid(control) {
    var validators = $(control).Validators;
    var isValid = true;
    Array.forEach(validtors, function(item) {
        isValid = isValid && (item.isvalid === true);
    });
    return isValid;
}

<强>更新

这比您提议的更好,因为整个页面验证器不会被迭代。只有与控件关联的那些用于迭代。 $(control).Validators用于检索与控件关联的验证器。