f.settings [g] .call не является функцией ни с чем, кроме отправки подтверждения - PullRequest
8 голосов
/ 08 ноября 2011

Я пытаюсь заставить плагин проверки jquery работать с опциями onkeyup или onfocusout. Каждый раз, когда я добавляю эти параметры и запускаю один из них, я получаю сообщение об ошибке. Проверка работоспособна, если я отправлю свою форму.

Мне не разрешено публиковать форму, над которой я работаю, однако я создал аналогичные проблемы с очень простой формой, которую я просто загружал в каталог со всеми js в подкаталогах static / js /.

Я использую jquery 1.6.2 и jquery validation 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>

Ответы [ 2 ]

16 голосов
/ 09 февраля 2012

Как указано выше, документация имеет недостатки. На самом деле вам нужно установить параметр onfocusout для функции, которая принимает проверяемый элемент в качестве параметра. Вот пример рабочего кода:

$("#form").validate({
    onfocusout: function(element) {$(element).valid()}
});
1 голос
/ 20 февраля 2012

в моем случае была строка onkeyup: true, затем я изменил ее на false

onkeyup: false

, но я до сих пор не знаю, когда начала появляться ошибка.:)

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