Я знаю, что этот вопрос задан раньше, и я прочитал все предыдущие вопросы, и я до сих пор не могу заставить валидатор jQuery правильно проверять поля CKEditor.Плагин проверки jQuery с CKEditor
Моя форма ниже:
<form id="faq-form">
<p>
<label>Title:</label>
<input type="text" id="faq-title" name="faq-title" class="faq-title" />
</p>
<p>
<label for="question">Question:</label>
<textarea name="question" id="question"></textarea>
</p>
<p>
<label for="answer">Answer:</label>
<textarea name="answer" id="answer"></textarea>
</p>
<p>
<input id="submit-faq" name="submit-faq" type="submit" value="Submit" />
</p>
</form>
Оба прокручиваемым преобразуются в CKEditor полей с помощью:
<script>
CKEDITOR.replace('question', { toolbar : 'forum' });
CKEDITOR.replace('answer', { toolbar : 'forum' });
</script>
Когда я пытаюсь проверить, только поле заголовка получает подтверждено. Я не уверен, что я делаю неправильно. Вот мой код javascript для проверки (следующие элементы находятся в готовой функции jQuery).
$('#faq-form').submit(function() {
// Update textareas with ckeditor content
for (var i in CKEDITOR.instances) {
CKEDITOR.instances[i].updateElement();
$.trim($('#' + i).val());
}
// Validate the form
if (! $('#faq-form').validate({
rules: {
'faq-title': {
required: true,
minlength: 5
},
answer: {
required: true,
minlength: 20
},
question: {
required: true,
minlength: 20
}
}
}).form()) {
console.log('Form errors');
return false;
}
После завершения проверки, я буду использовать метод в $ .post вместо нормальной формы получить или отправить, так что я могу обновить мою страницу без перезагрузки. $ .post приходит после метода проверки, но я не думал, что это нужно было показать.
Вы не должны использовать ['.validate()'] (http://docs.jquery.com/Plugins/Validation/validate#options) внутри условного выражения. Вот для этого используется метод '.valid()' (http://docs.jquery.com/Plugins/Validation/valid). '.validate()' используется только для _initializing_ плагина с вашими правилами и параметрами. После инициализации, '.valid()' можно использовать внутри условных выражений для запуска теста и возврата логического значения. – Sparky
Хорошая точка от Sparky. Я должен отметить, что мой ответ был действительно правильным. – podperson
Итак, я должен запустить $ .validate() со всей моей конфигурацией, когда документ готов, а затем в методе $ ('# form'). Submit() запустите .valid() в моей форме? – Sean