f.settings [g] .call不是除了提交验证之外的任何函数

gra*_*ntk 8 jquery jquery-validate

我试图让jquery验证插件使用onkeyup或onfocusout选项.每次我添加这些选项并触发其中一个选项时,我都会收到错误消息.如果我提交表单,验证将起作用.

我不是真的被允许发布我正在处理的表单,但是我用一个非常简单的表单创建了类似的问题,我只是在子目录static/js /下的所有js的目录中加载.

我使用的是jquery 1.6.2和jquery验证1.9.0

有人有什么想法?

<html>
<script type="text/javascript" src="static/js/jquery.js"></script> 
<script type="text/javascript" src="static/js/jquery.validate.js"></script>

<script type="text/javascript">
$(document).ready(function(){

    var validator = $('#submitform').validate({
        rules: {
            name: 'required',
            phone: {
                required: true,
                minlength: 12
            },
            team: {
                required: true,
                minlength: 1
            },
            fax: {
                required: true,
                minlength: 12
            }
        },
        messages: {
            name: 'Your name is required',
            phone: 'Your phone number is required',
            team: 'Your extension number is required',
            fax: 'Your fax number is required'
        },
        // the errorPlacement has to take the table layout into account 
        errorPlacement: function(error, element) { 
            if ( element.is(":radio") ) 
                error.appendTo( element.parent().next().next() ); 
            else if ( element.is(":checkbox") ) 
                error.appendTo ( element.next() ); 
            else 
                error.appendTo( element.parent() ); 
        }, 
        onfocusout: true,
        // specifying a submitHandler prevents the default submit, good for the demo 
        submitHandler: function() { 
            alert("submitted!"); 
        }, 
        // set this class to error-labels to indicate valid fields 
        success: function(label) { 
            // set   as text for IE 
            label.html(" ").addClass("checked"); 
        } 
    });
});
</script>

<form id="submitform" action=".">

<label for="name">Your Name:</label>
<input id="ins_name" type="text" name="name"  maxlength="40" />

<label for="phone">Phone:</label>
<input name="phone" maxlength="14" type="text" id="phone" />

<label for="extension">Extension:</label>
<input name="extension" maxlength="10" type="text" id="extension" />

<label for="fax">Fax:</label>
<input name="fax" maxlength="14" type="text" id="fax" />

<input type="submit" value="Submit">   
</form>
Run Code Online (Sandbox Code Playgroud)

dji*_*.co 17

如上所述,文档存在缺陷.实际上,您需要将onfocusout选项设置为接受被验证为参数的元素的函数.这是一个工作代码示例:

$("#form").validate({
    onfocusout: function(element) {$(element).valid()}
});
Run Code Online (Sandbox Code Playgroud)