Пользовательский метод проверки jQuery вызывается при каждом изменении элемента - PullRequest
0 голосов
/ 21 июля 2011

У меня есть выбор, который является целью пользовательского метода валидатора.

валидатор:

    var validator = $("#myform").validate({
        rules : {
            source: "source_selected",
        },
        messages : {
        },
        errorLabelContainer: $("#error_container ul"), 
        errorContainer: $("#error_container"), 
        wrapper : "li"      
     });

метод персонализированного валидатора:

    $.validator.addMethod("source_selected", function(value, element) {
        var source_id = $(element).selectedValues();
        if(source_id == 0) {
             return false;
        }

        return true;
    }, "Please a select a source to Copy subscriptions from.");

выбор:

<select name="source" id="source">
    <option value="0">-- Choose --</option>
    <? foreach($managers as $id => $name) { ?>
    <option value="<?=$id?>"><?=$name?></option>
    <? } ?>
</select>

Каждый раз, когда я меняю опцию в select, вызывается функция source_selected.Если я помещаю туда предупреждение, оно срабатывает каждый раз, когда я щелкаю из поля выбора (аналогично .blur).Я хочу, чтобы он вызывался только тогда, когда вызывается кнопка отправки.

событие отправки щелчка:

    $("#submit_button").click(function() { 
        var valid = validator.form();
        if (valid) {
            document.myform.submit();
        }
    });

Любые мысли очень ценятся.

1 Ответ

0 голосов
/ 21 июля 2011

Вместо того, чтобы делать это как валидатор - который кажется вам бесполезным - просто вызовите свою функцию валидации в onSubmit и проверьте ее возвращаемое значение.

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