0

我正在尝试验证包含 CKEditor 支持的 textarea 的表单。但是现在,它根本不显示任何错误,也不提交代码。

我已经阅读了与该主题相关的所有答案,但我的代码无法正常工作。

这是我到目前为止所得到的:

if(jQuery().validate) {
    $("#submit_button").click(function(e){
        e.preventDefault();
        CKEDITOR.instances.editor1.updateElement();

        $(" #content_form ").validate({
            ignore: "input:hidden:not(input:hidden.required),input:hidden:not(input:hidden.editor1)",
            errorPlacement: function(error, element) {
                if (element.attr("name") == "editor1")
                {
                    error.insertBefore("#editor1");
                }
                else
                {
                    error.insertAfter(element);
                }
            },
            rules: {
                title: {
                    required: true,
                    minlength: 5
                },
                editor1: {
                    required: true,
                    minlength: 10
                },
                imglink: {
                    url:true
                },
            },
            messages: {
                title: "The title field is required.",
                editor1: "The content field is required.",
                imglink: "You must provide a valid URL."
            }
        });
    });
}

如果你们中的任何人能帮助解决这个问题,我将不胜感激。

提前致谢。

4

2 回答 2

0

您的问题之一是对该方法的基本误解.validate()

你的代码...

$("#submit_button").click(function(e){
    ....

    $(" #content_form ").validate({
        ....

由于.validate()是插件的初始化方法,它通常在 DOM 就绪事件上被调用一次。它不属于提交按钮的click处理程序事件,因为插件需要在点击事件之前初始化。它也不会被多次调用,因为所有后续调用都将被忽略。)除此之外,插件还捕获各种点击事件并根据需要自动执行任何定义的验证。

$(document).ready(function() { // <-- DOM Ready event
    ....

    $("#content_form").validate({  // <-- Initialize the plugin on this form
        ....

插件基本演示:http: //jsfiddle.net/EN3Yb/

于 2013-11-05T17:30:19.210 回答
0

我正在做的方式是这样的:

CKEDITOR.instances['txtSomeTextbox'].updateElement(); // this will update text in the hidden textbox that CKE is using.

// or if you have multiple instances 
// for (var i in CKEDITOR.instances) {
//CKEDITOR.instances[i].updateElement(); // to update the textarea
//}

然后,我得到文本框的值如下:

var mytext = CKEDITOR.instances.txtSomeTextbox.getData();

您现在可以使用 mytext 进行任何验证..

于 2013-11-05T13:17:43.877 回答