Проверка jQuery — Невозможно вызвать метод ‘вызов’ из неопределенного

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

Когда скрипт запускается, я получаю 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 framework, поэтому извиняюсь, если моя страница формы не имеет смысла для некоторых.

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.'
}
}
})
})

Любая помощь будет благодарна! Ура ребята

0

Решение

$('#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 выше, чтобы соответствовать тому, что показано в отрендеренном исходном коде вашей формы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]