首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery验证未验证检查器数据

jQuery验证未验证检查器数据
EN

Stack Overflow用户
提问于 2013-12-24 23:28:14
回答 2查看 23.7K关注 0票数 17

我知道有很多关于这方面的问题,但我不能让它在我的生活中工作。我尝试了几种解决方案,包括thisthe second answer herethis,但我无法获得“必需”的消息。当ckeditor字段为空时,表单仍会提交。

我查看了文档here,并能够将编辑器的内容传递给警报,但经验不足,无法知道如何将其与验证插件集成。我在这上面花了很多时间--有人能帮我吗?

下面是我当前的代码,我创建了一个提琴:http://jsfiddle.net/BmZ93/1/

代码语言:javascript
复制
     $('#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"
                } 
        });
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-24 23:47:11

下面是用下面代码更新代码

http://jsfiddle.net/rohanppatil/BmZ93/8/

代码语言:javascript
复制
$(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中进行了测试,运行良好

票数 34
EN

Stack Overflow用户

发布于 2013-12-24 23:40:14

您应该更改默认情况下保存:hidden值的ignore属性的值。因为CKEDITOR隐藏了文本区域,所以jQuery验证不会验证元素:

代码语言:javascript
复制
ignore: [] 

http://jsfiddle.net/BmZ93/5/

还要注意,你应该在你的required方法中返回一个布尔值,但你没有,在这里传递true就足够了。

代码语言:javascript
复制
required: true

这是更新后的代码,同样使用了errorPlacement方法来添加边框到CKEDITOR包装器中,您可以根据自己的需要进行自定义:

代码语言:javascript
复制
$(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: []
    });
});
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20763216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档