01/10/2018, 00:22

Hỏi về submit data từ ckeditor

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

vũ xuân quân viết 02:27 ngày 01/10/2018

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>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/

Oldie Beginner viết 02:30 ngày 01/10/2018

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();
};

Truong Tien Quang viết 00:01 ngày 26/03/2019

lỗi phải ấn 2 lần mới submit sửa sao v b chỉ mình với

Bài liên quan
0