2009-12-14 6 views
2

저는 basedance에서 CKeditor 및 jQuery 유효성 검사 플러그인을 사용하고 있습니다. 내 텍스트 영역 (그것에 CKEditor 함께) jQuery에 의해 유효성이 검사되고 있지만 내 제출 단추 두 번째 클릭 한 후에 작동합니다.jQuery 유효성 검사 플러그인이 작동하지 않는 CKEditor를 사용합니다.

요약하면 : 데이터가 CKEditor에 입력 될 때 처음 양식을 제출하면 "필드가 비어 있습니다"라고 표시됩니다. 두 번째로 확인하고 양식을 제출 중입니다.

나는 이것에 대한 해결책 읽기 : ". 당신이 바로 모든 검증 루틴 전에 CKEDITOR.editor :: updateElement를 호출하여이 문제를 해결할 수있다"

그래도 난 그것을 구현하는 방법을 찾을 수 없습니다 :

$(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#updateElement

+1

console.dir (CKEDITOR를); console.dir (CDEDITOR.instances); – czarchaic

+0

은 자바입니까? 나는 자바 스크립트와 Jquery를 html 페이지에서 사용하고있다. – Jorre

+0

자바 스크립트가 없다. 방화범을 사용하고 있습니까? – czarchaic

답변

4

감사 czarchaic :

CKEDITOR.instances.prod_description.updateElement();

여기서 "prod_description"은 CKeditor가 연결된 텍스트 이름입니다.

+0

어디서이 글을 쓸 것인가? 동일을 위해 바이올린을 제공하십시오, 나는 동일한 문제에 관해서 문제가 있습니다. –

1

이것은 최선의 방법은 아니지만 단순히 CKEditor에 데이터가 있는지 확인하는 jquery 규칙을 만들었습니다. 데이터가 있으면 규칙을 전달합니다. 그렇지 않으면 실패합니다. 이것은 나를 위해 꽤 잘 작동하는 것 같습니다.

//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" 
+0

이것이 저에게 큰 도움이되었습니다. –

+0

어디서이 글을 쓸 것인가? 동일한 것을 위해 바이올린을 제공하십시오. 나는 이와 관련하여 문제가 있습니다. –

1

내 페이지에 여러 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; 
     } 
+0

이것은 완벽하게 작동했습니다. 감사! –

+0

어디서이 글을 쓸 것인가? 동일하게 바이올린을 제공하십시오. –

관련 문제