Данные ckeditor не проверяются с помощью проверки jQuery
Я знаю, что в этом есть масса вопросов, но я не могу заставить это работать на всю жизнь. Я попробовал несколько решений, включая этот, второй ответ здесь и this, и я не могу получить сообщение "required". Форма по-прежнему отправляется, когда поле ckeditor пусто.
Я посмотрел документацию здесь и могу передать содержимое редактора предупреждению, но я недостаточно опытен, чтобы знать, как для интеграции с плагином проверки. Я потратил столько времени на это - может ли кто-нибудь помочь?
Вот мой текущий код, и я создал скрипку: http://jsfiddle.net/BmZ93/1/
$('#add-job').validate({
rules: {
editor1: {
required: function()
{
CKEDITOR.instances.editor1.updateElement();
}
}
},
messages: {
Job_Title: "Required",
Job_Location: "Required",
jobid: "Required",
Job_Cat: "Required",
editor1: "Required"
}
});
Ответы
Ответ 1
Здесь он обновляет ваш код с помощью этого
http://jsfiddle.net/rohanppatil/BmZ93/8/
$(document).ready(function() {
$('#add-job').validate({
ignore: [],
rules: {
editor1: {
required: function()
{
CKEDITOR.instances.editor1.updateElement();
}
}
},
messages: {
Job_Title: "Required",
Job_Location: "Required",
jobid: "Required",
Job_Cat: "Required",
editor1: "Required"
},
/* use below section if required to place the error*/
errorPlacement: function(error, element)
{
if (element.attr("name") == "editor1")
{
error.insertBefore("textarea#editor1");
} else {
error.insertBefore(element);
}
}
});
});
Надеюсь, что это сработает. Я тестировал это в JSFIDDLE, работая нормально
Ответ 2
Вы должны изменить значение свойства ignore
, которое по умолчанию содержит значение :hidden
. поскольку CKEDITOR
скрывает, что проверка jQuery в textarea не проверяет элемент:
ignore: []
http://jsfiddle.net/BmZ93/5/
Также обратите внимание, что вы должны возвращать логическое значение в свой метод required
, вы этого не делаете. Здесь проходит прохождение true
.
required: true
Это обновленный код, который также использует метод errorPlacement
для добавления границы к обертке CKEDITOR, вы можете настроить его в соответствии с вашими потребностями:
$(document).ready(function () {
$('#add-job').validate({
rules: {
'editor1': {
required: true
}
},
messages: {
Job_Title: "Required",
Job_Location: "Required",
jobid: "Required",
Job_Cat: "Required",
editor1: "Required"
},
errorPlacement: function(error, $elem) {
if ($elem.is('textarea')) {
$elem.next().css('border', '1px solid red');
}
},
ignore: []
});
});