jQuery多个输入与一个函数RegExp

时间:2017-02-18 17:02:38

标签: javascript jquery forms validation

我有一个包含1个以上输入字段的表单。应该允许的格式是hh:mm / h:mm。所以我已经有了一个函数,如果输入格式为真,则检查我的输入。

所以我想要的是,如果我点击我的提交按钮,如果格式正确,我想再次检查所有方框。如果为true则提交();否则然后警告()或其他东西。但这不是问题。

我不知道我怎么能意识到这一点。提前谢谢:))

function validateAbs(inputField) {

                var isValid = /^([0-1]?[0-9]|2[0-3]):([0-5][0-9])(:[0-5][0-9])?$/.test(inputField.value);    
                if (isValid) {
                    inputField.style.backgroundColor = '#bfa';
                } else {
                    inputField.style.backgroundColor = '#fba';
                }

                return isValid;
            }



            $(function(){
                $('#ist').on('input', function() {
                    //This is one of ne hh:mm Textboxes
                    validateAbs(this);
                });
             });

             $(function(){
                $('#abssubmit').on('input', function() {
                    //This is my Submit-Button
                });
             });

2 个答案:

答案 0 :(得分:0)

这简直太容易了:

$('#abssubmit').on('input', function() {
    $("selector-for-the-inputs-you-want-to-check").each(function() {
        validateAbs(this);
    });
});

如果您想知道其中任何一个是否无效,可以使用filter

$('#abssubmit').on('input', function() {
    var invalidFields = $("selector-for-the-inputs-you-want-to-check").filter(function() {
        return !validateAbs(this);
    });
    if (invalidFields.length) {
        // At least one field was invalid
    }
});

答案 1 :(得分:0)

您需要更改为提交处理程序而不是输入'处理程序:

$('#abssubmit').on('submit', function(ev) {
    var isValid;
    ev.preventDefault(); // to stop the form from submitting
    $('#ist').each(function() {
        if (!validateAbs(this)) isValid = false;
    });
    if (isValid) {
        this.submit(); // all the validations succeeded
    }
});