如何迭代所有文本框以进行验证

时间:2014-10-08 07:17:02

标签: javascript jquery

我的网页上有大约50 Textboxes的动态Textboxes

用户可以在这些Textboxes中设置订单号。我必须确保只能设置3个订单号&没有重复的条目。因此,用户只能输入1,2和2。 3在整个文本框中。如果他在某处进入4,他应该得到一个错误。其余文本框的0为默认值。

如何迭代到所有文本框以检查不超过4&的值没有重复的条目&没有文本框空?

1 个答案:

答案 0 :(得分:1)

我很确定有更优雅的方法可以做到这一点,但是这里是"直接前进"方式:

function validateTextBoxes() {
    var values = [];
    var isError = false;
    var atLeastOneFilled = false;

    $('input[type=text]').each(function (idx, elem) {
        var val = $(elem).val();

        if (isNaN(val)) {
            isError = true; // input is not a number
        } else // a number
        {
            var intVal = Number(val);
            if (!isInt(intVal)) {
                isError = true; // not an interger
            } else {
                if (intVal !== 0) // default
                {
                    atLeastOneFilled = true;

                    if (intVal > 3 || intVal < 0) {
                        isError = true; // not in range
                    } else if (values.indexOf(intVal) > -1) {
                        isError = true; // duplicate
                    } else {
                        values.push(intVal);
                    }
                }
            }
        }
    });

    return atLeastOneFilled && !isError;
}

function isInt(n) {
    return n % 1 === 0;
}

JSFIDDLE