我知道有很多关于这方面的问题,但我不能让它在我的生活中工作。我尝试了几种解决方案,包括this、the second answer here和this,但我无法获得“必需”的消息。当ckeditor字段为空时,表单仍会提交。
我查看了文档here,并能够将编辑器的内容传递给警报,但经验不足,无法知道如何将其与验证插件集成。我在这上面花了很多时间--有人能帮我吗?
下面是我当前的代码,我创建了一个提琴: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"
}
});
发布于 2013-12-24 23:47:11
下面是用下面代码更新代码
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中进行了测试,运行良好
发布于 2013-12-24 23:40:14
您应该更改默认情况下保存:hidden
值的ignore
属性的值。因为CKEDITOR
隐藏了文本区域,所以jQuery验证不会验证元素:
ignore: []
还要注意,你应该在你的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: []
});
});
https://stackoverflow.com/questions/20763216
复制相似问题