0

我有这段代码 [来自该站点上的不同用户-谢谢!] 我需要修改这些代码,以便我可以检查多个字段而不仅仅是一个字段。我不确定是否应该向第二个函数添加参数或将变量 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”,但我该怎么做呢?

任何帮助表示赞赏。

4

1 回答 1

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 验证插件

于 2012-12-12T00:44:56.370 回答