jQuery自定义验证器方法在元素改变时被调用

jQuery custom validator method getting called whenever element changes

本文关键字:改变 调用 元素 自定义 验证 方法 jQuery      更新时间:2023-09-26

我有一个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>

每次我改变选项在选择source_selected函数被调用。如果我在这里放一个警告,每次我点击选择框的时候它都会被触发(类似于。blur)。我希望它只在提交按钮被调用时才被调用。

提交点击事件:

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

不要把它当作一个验证器来做——这对你来说似乎毫无用处——只需在onSubmit中调用验证函数,并检查它的返回值