要添加参数还是添加数组?

时间:2012-12-12 00:38:11

标签: javascript

我有这段代码[源自本网站上的不同用户 - 谢谢!]我需要修改,以便我可以检查多个字段而不是一个。我不确定是否应该向第二个函数添加参数或将变量checkString转换为数组。

function getField(fieldType, fieldTitle) {
    var docTags = document.getElementsByTagName(fieldType);
    for (var i = 0; i < docTags.length; i++) {
        if (docTags[i].title == fieldTitle) {
            return docTags[i]
        }
    }
}

function checkField() {
    var checkString = getField('input', 'fieldtocheck').value;
    if (checkString != "") {
        if (/[^A-Za-z\d]/.test(checkString)) {
            alert("Please enter only alphanumeric characters for the field fieldtocheck");
            return (false);
        }
    }
}

我认为最好的选择是将“getfield”作为参数提供给“checkfield”但是我该怎么做?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

我会使你的函数更通用,并使用类来识别字段:

function checkFields(className, regex) {
    var inputs = document.getElementsByClassName(className);

    for (var i = 0; i < inputs.length; i++) {
        if (!regex.match(inputs[i].value)) {
            return false;
        }
    }

    return true;
}

function validate() {
    if (!checkFields('alphanum', /^[A-Za-z\d]+$/)) {
        alert('Please enter only alphanumeric characters');
    }
}

您的HTML可能如下所示:

<input type="text" class="alphanum" />

更简单(更好的IMO)方法是使用jQuery validation plugin