مهدی اسدی
5 ماه پیش توسط مهدی اسدی مطرح شد
1 پاسخ

مشکل اعتبارسنجی ckeditor در زمان submitکردن فرم

سلام دوستان ، من از ckeditor در پروژه ام استفاده کردم ، اون رو دانلود کردم و اینطوری در blade خودم جاسازی کردم:

<div id="editor" style="font-size: medium;">
شرح مصوبه جلسه
                                </div>
 <script>
                                        var myEditor;
                                        DecoupledEditor
                                                .create( document.querySelector( '#editor' ),
                                                {
                                                    language:{
                                                        ui:'fa',content:'fa'

                                                    }
                                                }

                                                )
                                                .then( editor => {
                                                    const toolbarContainer = document.querySelector( '#toolbar-container' );

                                                    toolbarContainer.appendChild( editor.ui.view.toolbar.element );
                                                    myEditor = editor;

                                                } )
                                                .catch( error => {
                                                    console.error( error );
                                                } );
                                </script>

منتهی مشکلی که هست اینه که وقتی دکمه submite رو میزنم چه ckeditor پر باشه و چه خالی ،فرم یکبار دیگه لود میشه و محتوای ckeditor پاک میشه و سپس پیغام خطای خالی بودن میده(شرح مصوبه اجباری است) . در مورد سایر تگهای این صفحه این مشکل رو ندارم فقط ckeditor این مشکل رو داره .
قسمت اعتبار سنجی رو هم مطمئن هستم چون همونطور که گفتم بقیه تگهای مانند input , select در صورت خالی بودن پیام خالی بودن می دهند و مقدارشون بعد از submit تغییر نمی کنه.
این هم قسمت اعتبار سنجی در فایل request:

public function rules()
{
    return [
        "sessionCaption"=>"required|between:20,60",
        "secretary"=>"required",
        "editor"=>"required",
    ];
}
public function messages()
{
    return[
        "sessionCaption.required"=>" عنوان جلسه اجباری است ",
        "sessionCaption.between"=>"تعداد کاراکتر عنوان باید بین 20 تا 60 کاراکتر باشد",
        "secretary.required"=>"انتخاب دبیر اجباری است.",
        "editor.required"=>" شرح مصوبه اجباری است.",
    ];
}

ثبت پرسش جدید
سید مرتضی فاطمی زاده
تخصص : طراح وبسایت و دیزاینر
@darkwee 5 ماه پیش مطرح شد
0

سلام! مشکلی که شما توضیح داده‌اید، ممکن است به دلایل مختلفی باشد. در ادامه چند پیشنهاد برای رفع این مشکل آورده شده است:

  1. تأخیر در ذخیره‌سازی محتوا:
    ممکن است مشکل از تأخیر در ذخیره‌سازی محتوا در CKEditor باشد. شما می‌توانید در زمان فشرده‌سازی فرم (submit) با استفاده از JavaScript یک تأخیر (delay) تعیین کنید تا CKEditor به مراتب قبل از ارسال فرم اطلاعات را ذخیره کند. مثال:

    document.getElementById('myForm').addEventListener('submit', function() {
       myEditor.updateSourceElement();
       // اضافه کردن یک تأخیر به میلی‌ثانیه
       setTimeout(function() {
           // ادامه ارسال فرم
       }, 100);
    });
  2. اطمینان از ذخیره‌سازی مطالب:
    مطمئن شوید که در کد JS خود، محتوای CKEditor با استفاده از updateSourceElement ذخیره شود.

    myEditor = editor;
    myEditor.setData('شرح مصوبه جلسه'); // محتوای اولیه
  3. تنظیمات فرم:
    اطمینان حاصل کنید که تنظیمات فرم شما به درستی انجام شده باشد، مثل enctype و method. به عنوان مثال:

    <form id="myForm" method="POST" action="/your/action" enctype="multipart/form-data">
       <!-- فیلدهای فرم -->
    </form>
  4. استفاده از CKEditor از فایل CDN:
    اگر CKEditor را از فایلهای لوکال دانلود کرده‌اید، ممکن است مشکل در بارگذاری فایلها باشد. در این صورت می‌توانید از نسخه CDN استفاده کنید تا اطمینان حاصل شود که تمام فایلها به درستی بارگذاری شده‌اند.

    <script src="https://cdn.ckeditor.com/ckeditor5/40.0.0/classic/ckeditor.js"></script>
  5. بررسی Console:
    Console مرورگر خود را بررسی کنید و اطلاعات خطاها را ببینید. ممکن است اطلاعات بیشتری درباره خطا ارائه شود که کمک می‌کند به رفع آن.

اگر با این تغییرات مشکل هنوز برطرف نشده است، ممکن است نیاز به بررسی کد ویژه‌تر و سفارشی‌تر شود.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام