jQuery Validation – Невозможно вызвать метод «вызов» неопределенного

Не знаю, почему это не работает. Я уверен, что вы все знаете, чего я пытаюсь достичь здесь.

Когда скрипт запущен, я получаю Uncaught TypeError: undefined is not a function на jquery.validate.js line:366 которая ссылается на этот кусок кода:

 function delegate( event ) { var validator = $.data( this[ 0 ].form, "validator" ), eventType = "on" + event.type.replace( /^validate/, "" ), settings = validator.settings; if ( settings[ eventType ] && !this.is( settings.ignore ) ) { settings[ eventType ].call( validator, this[ 0 ], event ); } } ^^^^ HERE 

Я использую структуру codeigniter2, поэтому извиняюсь, если моя страница формы не имеет смысла для некоторых.

new_page.php (Соответствующий бит)

 <?php echo form_open(site_url('admin/manage_pages/new_page'), array('id' => 'new-page-form')) . PHP_EOL; ?> <div class="form-group"> <?php echo form_label('Page Title', 'page-title', 'class="control-label"') . PHP_EOL; ?> <?php echo form_input(array( 'name' => 'page-title', 'id' => 'input-page-title', 'max-length' => '255', 'placeholder' => 'Enter Page Title', 'class' => 'form-control')) . PHP_EOL; ?> </div><!-- /.form-group --> <div class="form-group"> <?php echo form_label('Url', 'slug', 'class="control-label"'); ?> <span id="input-slug-span" class="form-control"> <span id="input-slug-static"><?php echo site_url(); ?></span> <?php echo form_input(array( 'name' => 'slug', 'id' => 'input-slug')); ?> </span> </div><!-- /.form-group --> 

и в new_page.validation.js

 $(document).ready(function() { //-------------------------------------------------------------------------------------- // // New Page Client Side Validation // //-------------------------------------------------------------------------------------- $('#new-page-form').validate({ onkeyup:true, rules: { 'page-title': { required: true, remote: { url: 'new_title_exists', type: 'post', data: { 'page-title': function() { return $("#input-page-title").val(); } } } }, 'slug': { required: true, remote: { url: 'new_slug_exists', type: 'post', data: { 'slug': function() { return $('#input-slug').val(); } } } } }, messages: { 'page-title': { required: 'Page Title is required.', remote: 'Page Title must be unique.' }, 'slug': { required: 'A URL slug is required', remote: 'The URL must be unique.' } } }) }) 

Любая помощь была бы признательна! Приветственные ребята

 $('#new-page-form').validate({ // onkeyup:true, // REMOVE THIS rules: { 'page-title': { required: true, remote: { // element's value IS always sent url: 'new_title_exists', type: 'post', data: { // MUST send the CSRF Token Value 'csrftoken': function() { return $('input[name="csrftoken"]').val(); } } } }, .... 
  • onkeyup: true может потенциально нарушить нормальное функционирование плагина. Согласно документации, «логическое значение true не является допустимым значением» . Это потому, что onkeyup уже по умолчанию.

  • Всякий раз, когда используется метод jQuery Validate remote или любой ajax() , в проекте CodeIgniter, вам также нужно отправить токен CSRF в data , иначе вы получите ошибку сервера 500. Вы можете выбрать это из скрытого элемента ввода в своей форме. Однако вам не нужно отправлять значение проверяемого элемента ввода, поскольку эти данные уже отправляются по умолчанию. Измените name выше, чтобы оно соответствовало тому, что отображается в отображаемом исходном коде вашей формы.