0

我有一个使用 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()

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

我的问题是,虽然所有其他字段都可以正常工作,但文本区域有时却不行。如果我在其中输入内容,有时无法识别它并且仍然会弹出警报。然后,如果我返回并单击(我什至不必再输入任何内容)并尝试提交它就可以了。

任何猜测为什么?

4

2 回答 2

0

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

CKEeditor 不能那样工作,你不会得到像$('#products_description').val(). CKEditor 不直接使用 textarea,它会生成一个 iframe 来代替它。要获取该值,请调用CKEDITOR.instances.editor1.getData()where editor1 在您的情况下可能是products_description

于 2013-04-08T21:30:31.917 回答
0

这对我有用,而没有添加描述可以正常工作,但是如果您放置一些空间,则将其视为内容。请为您的文本区域添加必需的属性。 请包括 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);
                        }
                    }
                });
    });
于 2017-01-13T09:32:02.083 回答