باستخدام ckeditor مع المساعد التحقق من التحقق من الصحة

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

  •  19-09-2019
  •  | 
  •  

سؤال

أنا أستخدم ckeditor والمساعد التحقق من صحة المسك من basistance. يتم التحقق من صحة Textarea (مع ckeditor عليه) بواسطة jQuery بواسطة jQuery، ولكن يعمل فقط بعد النقر الثاني على زر إرسال الخاص بي.

باختصار: المرة الأولى التي أقدم فيها النموذج عند إدخال البيانات في ckeditor، كما تقول "الحقل فارغا". في المرة الثانية التي تقول إنها موافق ويتم تقديم النموذج.

قرأت حل لهذا:

"يمكنك حل هذه المشكلة عن طريق الاتصال CKEDitor.Editor :: UdeadeLement مباشرة قبل كل روتين التحقق من الصحة."

لا يمكنني العثور على كيفية تنفيذها على الرغم من:

$(document).ready(function(){
    CKEDITOR.replace( 'prod_description',
    {
        toolbar: 'MyToolbar'
    }
    );

    $("#btnOk").click(function(){
        CKEDITOR.instances.editor1.updateElement();
        alert('click');
    });
});

هذا دائما يعطيني الخطأ: "ckeditor.instances.editor1 غير محدد"

أي أفكار بشأن كيفية حل هذا. الوثائق من ckeditor هنا:http://docs.cksource.com/ckeditor_api/symbols/ckeditor.editor.html#updates.

هل كانت مفيدة؟

المحلول

شكرا czarchaic،

أنا حلها عن طريق الكتابة:

ckeditor.instances.prod_description.updateelement ()؛

حيث "prod_description" هو اسم الرقمين الخاص بك مع ckeditor مرتبط به.

نصائح أخرى

قد لا يكون هذا أفضل طريقة للقيام بذلك، لكنني قمت بإنشاء قاعدة مسج يقوم ببساطة بالتحقق لمعرفة ما إذا كانت هناك بيانات في CKEditor. إذا كانت هناك بيانات، فهذا يمرر القاعدة. إذا لم يكن كذلك، فهذا فشل. يبدو أن هذا يعمل بالنسبة لي جيدا.

//Have to build custom method to check ckeditor
jQuery.validator.addMethod("ckeditor", function(value, element) { 
    var textData = editor.getData();
    if(textData.length>0) return true;
    return false;
}, "No data in editor");

ثم، تبدو حكمي مثل هذا:

'fieldName': "ckeditor"

لدي العديد من ckeditors على صفحتي، لذلك أفعل هذا:

        // You need to update the editors before jqValidator.
        for (var i in CKEDITOR.instances)
        {
            CKEDITOR.instances[i].updateElement();
        }
        if (!jqValidator.form())
        {
            alert('Error Alert: please correct the errors detailed below, then click "Apply changes" again.');
            return;
        }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top