元素更改时调用jQuery自定义验证器方法

时间:2011-07-21 07:54:20

标签: javascript jquery webforms

我有一个select是自定义验证器方法的目标。

验证

    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 :(得分:0)

而不是将它作为验证器 - 对你来说似乎没用 - 只需在onSubmit中调用验证函数,并检查它的返回值。