Em có một đoạn demo nhỏ như sau : https://js.do/code/submitdatackeditor
validate hoạt động bình thường nhưng ở lần đầu ấn submit thì dù mình đã nhập dữ liệu vào nó vẫn hiện validate message lên. Bác nào có hướng giải quyết không ạ, em tìm trên stackoverflow xong thử đủ các kiểu vẫn bị lỗi này
Hỏi về submit data từ ckeditor
ngồi mò hoài mới chạy được.
code của bạn nên sửa lại.
Đoạn HTML
<form action="../../scripts/upload-job.php" method="post" name="myForm" id="myForm">
<label>Description</label>
<textarea name="editor1" id="editor1" class="required"></textarea>
<script>
CKEDITOR.replace( 'editor1' );
</script>
<br/>
<input name="submit" type="submit" value="Submit" id="job-submit"/>
</form>
chỗ này lưu ý <textarea name="editor1" id="editor1" class="required"></textarea>
và CKEDITOR.replace( 'editor1' );
– class css required dùng để đánh dấu input nào muốn validate.
– CKEDITOR.replace( ‘editor1’ ): replace textarea thành CKEDITOR.
code javascript:
$(document).ready(function(){ $("#myForm").validate({ ignore: [], rules: { cke_1_contents: { required: function() { CKEDITOR.instances.editor1.updateElement(); }}}, messages: { editor1: "vui long nhap"}, errorPlacement: function(error, element) { if(element.attr("id")=="cke_editor1"){ error.insertBefore("cke_editor1");} else { error.insertAfter(element);} } }); });
– cke_1_contents: id của CKEditor tự động sinh ra. Tại sao dùng cái này vì đoạn code HTML trên textarea bị hidden nên không dùng được, cke_1_contents là nội dung của CKEditor. Theo suy nghĩ mình là mình lấy nội dung ở đây để kiểm tra.
– if(element.attr(“id”)==“cke_editor1”): do textarea bị ẩn đi nên chỗ này chọn id của CKEditor.
Giờ lại bị 1 vấn đề: khi không nhập thì validate ok. Xong rồi nhập giá trị vô thì nhấn 2 lần mới chuyển ra trang submit. Không biết vì sao.
Code demo
https://jsfiddle.net/masoivn/eb3qvuob/8/
tks anh nhiều. tìm ra đc cách khác rồi nên quên béng topic này, giờ mới nhớ ra vào tham khảo
cách e làm là để 1 sự onlick lúc submit, gọi function CKupdate()
function CKupdate(){
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
};