Флажок Mootools Form.Validator - PullRequest
       6

Флажок Mootools Form.Validator

0 голосов
/ 16 декабря 2011

Я хочу подтвердить флажок.На самом деле несколько с одним и тем же именем:

<input type="checkbox" name="somefield" value="1">1
<input type="checkbox" name="somefield" value="2">2
<input type="checkbox" name="somefield" value="3">3

Я хочу убедиться, что хотя бы один флажок установлен перед отправкой формы.

Итак, я добавил валидатор:

Form.Validator.add('isChecked', {
    errorMsg: 'One of these fields is required',
    test: function(element){
        if (element.type == 'checkbox' || element.checked==true) return false;
        else return true;
    }
});

Но для этого нужно проверить все поля ...

В крайнем случае я хочу вывестиТо же сообщение об ошибке Form.Validator.Tips (не могу понять, как это происходит) ...

Так, как мне поступить с этим?

Ответы [ 4 ]

2 голосов
/ 16 декабря 2011

По-видимому, для этого есть валидатор:

Validate-требуется проверка

Doh!

2 голосов
/ 16 декабря 2011

уже имеется валидатор, который более уместен, что вы можете увидеть здесь:

https://github.com/mootools/mootools-more/blob/master/Source/Forms/Form.Validator.js#L503-512

['validate-one-required', {
    errorMsg: Form.Validator.getMsg.pass('oneRequired'),
    test: function(element, props){
        var p = document.id(props['validate-one-required']) || element.getParent(props['validate-one-required']);
        return p.getElements('input').some(function(el){
            if (['checkbox', 'radio'].contains(el.get('type'))) return el.get('checked');
            return el.get('value');
        });
    }
}]
0 голосов
/ 03 января 2013
0 голосов
/ 16 декабря 2011

Я хотел бы представить что-то вроде:

function test(element){
    var anyChecked = false;
    $$('input[type=checkbox]').each(function (el) {
        if(el.checked){
            anyChecked = true;
        }
    return anyChecked;
}

вероятно, более эффективный способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...