مسج التحقق من الصحة + ckeditor - التحقق من صحة عند الكتابة

StackOverflow https://stackoverflow.com/questions/1908592

سؤال

أنا أستخدم ckeditor على textarea ومساعد التحقق من الصحة المسج (http://bassistance.de/jquery-plugins/jquery-plugin-validation/)

مع البرنامج المساعد JQuery، من الممكن وضع علامة حقل فارغ أو مطلوب. عندما يكون حقل مثل "اسم المنتج" فارغا فسيتم تمييز الحقل بأنه غير صالح عند تقديم النموذج.

ولكن، أثناء الكتابة في "اسم المنتج"، سيتم تمييز الحقل تلقائيا بشكل صالح أثناء الكتابة. هذا رائع، لكنني أريد أن أحصل على نفسه مع Textarea الممكن CKEditor. كل شيء يعمل بشكل رائع مع TextArea عادي (عند كتابة النص، يصبح الحقل صالحا)، ولكن هذا لا يعمل بعد الآن بعد إضافة ckeditor إلى textarea.

من ذلك الحين، عليك النقر فوق الزر "إرسال" قبل إعادة التحقق من صحة Ckeditor Textarea.

أي أفكار حول كيفية جعل هذا العمل؟

شكرا جزيلا لمساعدتكم، كان Stackoverflow مساعدة كبيرة في الأيام القليلة الماضية!

تحديث:

لقد جربت الحل من الخيط الذي قدمته لي لكنه لا يعمل:باستخدام JQUERY للاستيلاء على المحتوى من IFRAME CKEDitor

لدي:

CKEDITOR.instances["page_content"].document.on('keydown', function(event)
                {
                    CKEDITOR.tools.setTimeout( function()
                    { 
                        $("#page_content").val(CKEDITOR.instances.page_content.getData()); 
                    }, 0);
        });

ولكن هذا يبقى إعطائي: "ckeditor.instances.page_content.document غير محدد"

معرف النصي الخاص بي هو "pction_content"

هذا يعمل بشكل جيد بعد النقر فوق الزر على الزر، ولكن كما ترى أحتاج إلى تشغيل حدث Keydown بطريقة أو بأخرى

$("#btnOk").click(function(event) {
            CKEDITOR.instances.page_content.updateElement(); //works fine
});

تحديث 2:

هذا الرمز صحيحة ويحصل على البيانات من ckeditor إلى textarea الخاص بي، ولكن لا يزال، لا شيء يحدث مع البرنامج المساعد للتحقق من صحة، فهو لا هو "الاستجابة كما أكتب" في ckeditor بينما يجب أن تتفاعل وأقول أن الحقل على ما يرام اكتب في بعض النص

CKEDITOR.instances["page_content"].on("instanceReady", function()
        {
                //set keyup event
                this.document.on("keyup", updateTextArea);
                 //and paste event
                this.document.on("paste", updateTextArea);

        });

        function updateTextArea()
        {
            CKEDITOR.tools.setTimeout( function()
                    { 
                        $("#page_content").val(CKEDITOR.instances.page_content.getData());
                    }, 0);  
        }
هل كانت مفيدة؟

المحلول

يجب عليك تعديل TextArea Ckeditor لكتابة HTML عند فقد التركيز، بدلا من (أفترض أن هذا هو ما يفعله افتراضيا) عند إرسال النموذج.

كان لدى شخص ما سؤال مماثل قبل بضعة أيام ويبدو أنه نجح، تحقق من ذلك.

نصائح أخرى

طيب الجميع، لقد قمت بإصلاحها بفضل نصائحك: يتفاعل البرنامج المساعد للتحقق من صحة مسج مع حدث KeyUP في حقول TextArea أو النص، لذلك عليك أن يؤدي إلى تشغيل هذا الحدث بعد تحديث Textarea.

تحقق من هذا:

    CKEDITOR.instances["page_content"].on("instanceReady", function()
    {
            //set keyup event
            this.document.on("keyup", updateTextArea);
             //and paste event
            this.document.on("paste", updateTextArea);

    });

    function updateTextArea()
    {
        CKEDITOR.tools.setTimeout( function()
                { 
                    $("#page_content").val(CKEDITOR.instances.page_content.getData());
                    $("#page_content").trigger('keyup');
                }, 0);  
    }

لا حاجة للقيام بأي شيء.

الخطوة الأولى: هام: تحديث ckeditor textarea مع المحتوى الفعلي قبل الإرسال

form.on('submit', function () {
        for (var instanceName in CKEDITOR.instances) {
            CKEDITOR.instances[instanceName].updateElement();
        }
    });

الخطوة التالية: ثم بعد التحقق من صحة الكود الخاص بك (يجب أن تكون الخطوة الأخيرة)

form.validate();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top