Câu hỏi dữ liệu ckeditor không được xác thực bằng xác thực jQuery


Tôi biết có vô số câu hỏi ngoài kia về điều này nhưng tôi không thể làm việc này cho cuộc đời của tôi. Tôi đã thử một số giải pháp bao gồm điều này, câu trả lời thứ hai ở đây và điều nàyvà tôi không thể nhận được thông báo "bắt buộc" xuất hiện. Biểu mẫu vẫn gửi khi trường ckeditor rỗng.

Tôi đã xem tài liệu đây và tôi có thể chuyển nội dung của trình chỉnh sửa sang cảnh báo nhưng không đủ kinh nghiệm để biết cách tích hợp điều này với plugin xác thực. Tôi đã dành rất nhiều thời gian cho việc này - bất cứ ai có thể giúp tôi không?

Đây là mã hiện tại của tôi, và tôi đã tạo ra một câu đố: http://jsfiddle.net/BmZ93/1/

     $('#add-job').validate({
                rules: {
                editor1: {
                    required: function() 
                    {
                    CKEDITOR.instances.editor1.updateElement();
                    }
                    }
                },
                messages: {
                Job_Title: "Required",
                Job_Location: "Required",
                jobid: "Required",
                Job_Cat: "Required",
                editor1: "Required"
                } 
        });

16
2017-12-24 15:28


gốc




Các câu trả lời:


Ở đây nó cập nhật mã của bạn với điều này

http://jsfiddle.net/rohanppatil/BmZ93/8/

$(document).ready(function() {
$('#add-job').validate({
    ignore: [],         
    rules: {
                editor1: {
                    required: function() 
                    {
                    CKEDITOR.instances.editor1.updateElement();
                    }
                    }
                },
                messages: {
                Job_Title: "Required",
                Job_Location: "Required",
                jobid: "Required",
                Job_Cat: "Required",
                editor1: "Required"
                },
                /* use below section if required to place the error*/
                errorPlacement: function(error, element) 
                {
                    if (element.attr("name") == "editor1") 
                   {
                    error.insertBefore("textarea#editor1");
                    } else {
                    error.insertBefore(element);
                    }
                }
            });
});

Hy vọng điều này sẽ làm việc tôi thử nghiệm này trong JSFIDDLE làm việc tốt


32
2017-12-24 15:47



@ surfbird0713 làm cho nó được chấp nhận nếu làm việc cho bạn ;-) - Rohan Patil
Chỉ cần hoàn thành thử nghiệm nó ra, nó hoạt động! Cám ơn rất nhiều - surfbird0713
@ surfbird0713 Chào mừng - Rohan Patil
tốt đẹp! nó hoạt động hoàn hảo! - Flezcano
tốt đẹp nó hoạt động hoàn hảo. Cảm ơn bạn Rohan - shrawan_lakhe


Bạn nên thay đổi giá trị của ignore thuộc tính mà theo mặc định giữ :hidden giá trị. như CKEDITOR ẩn xác thực jQuery văn bản không hợp lệ hóa phần tử:

ignore: [] 

http://jsfiddle.net/BmZ93/5/

Cũng lưu ý rằng bạn nên trả về giá trị boolean trong required phương pháp, bạn không. Ở đây đi qua true đủ.

required: true

Đây là mã được cập nhật cũng sử dụng errorPlacement để thêm đường viền vào trình bao bọc CKEDITOR, bạn có thể tùy chỉnh nó theo nhu cầu của bạn:

$(document).ready(function () {
    $('#add-job').validate({
        rules: {
            'editor1': {
                required: true
            }
        },
        messages: {
            Job_Title: "Required",
            Job_Location: "Required",
            jobid: "Required",
            Job_Cat: "Required",
            editor1: "Required"
        },
        errorPlacement: function(error, $elem) {
            if ($elem.is('textarea')) {
                $elem.next().css('border', '1px solid red');
            }
        },
        ignore: []
    });
});

11
2017-12-24 15:40