用jquery验证我的ckeditor文本区域

时间:2012-08-03 22:26:14

标签: javascript jquery ckeditor

我有一个文字区域,我用过ckeditor:

<form name="product_edit" action="products.php" method="post" id="edit_form" enctype="multipart/form-data">
<textarea name="products_description" wrap="soft" cols="75%" rows="20" id="products_description"></textarea>

在包含jQuery后,我还有以下内容来验证表单:

$(document).ready(function() {
  $('#edit_form').submit(function() {
     if ($('#products_description').val() == '') {
        alert('Please include a product description.');
        return false;
     }
  }); // end submit()
}); // end ready()

我还有其他几个我验证的字段,为简洁起见,不包括这些字段。

我的问题是,虽然所有其他字段都可以正常工作,但文本区域有时却没有。如果我在其中键入内容有时无法识别它并仍然弹出警报。然后,如果我回去点击(我甚至不需要再输入任何内容)并尝试提交它。

任何猜测为什么?

2 个答案:

答案 0 :(得分:0)

这还是个问题吗?如果没有,请发布您的解决方案。

CKEeditor不能像那样工作,你不会获得像$('#products_description').val()这样的数据。 CKEditor不直接使用textarea,它生成一个iframe而不是它。要获取该值,请致电CKEDITOR.instances.editor1.getData(),其中您的案例中的editor1可能为products_description

答案 1 :(得分:0)

这对我有用,但没有添加任何描述工作正常但如果你放一些空间它被认为是content.Please添加textarea所需的属性。  请包含jquery验证器和jquery库。

  $(document).ready(function() {
    $('#edit_form').validate({
        ignore: [],         
        rules: {
                    products_description: {
                            required: function() 
                            {
                                    CKEDITOR.instances.products_description.updateElement();
                            }
                        }
                    },
                    messages: {             
                    products_description: "مطلوب"
                    },
                    /* use below section if required to place the error*/
                    errorPlacement: function(error, element) 
                    {
                        if (element.attr("name") == "products_description") 
                       {
                        error.insertAfter("#cke_description");
                        } else {
                        error.insertAfter(element);
                        }
                    }
                });
    });