2016-09-28 1 views
0

TinyMCE 필드를 표시 할 가능성이있는 내 (WordPress) 웹 사이트의 프런트 엔드에 HTML 양식이 있습니다.직렬화 된 배열 (WordPress)에 tinyMCE 콘텐츠 추가

양식 자체는 WP 관리자가 완전히 사용자 정의 할 수 있으므로 tinyMCE 필드의 ID/이름은 무엇이든 될 수 있습니다.

양식을 제출할 때 필자는 일부 jQuery를 실행하여 필드의 유효성을 검사합니다 (즉, 필수 구성 요소에 내용이 있어야 함). 유효성 검사가 실패하면 경고가 표시되고, 그렇지 않으면 양식이 제출됩니다.

그러나 내 JS 파일의 필드 내용을 가져 와서 내 PHP 유효성 검사 기능 내에서 유효성을 검사 할 필요가있는 tinyMCE 필드를 사용할 때이 문제가 발생하는 문제가 있습니다.

양식 자체는 단순히 데이터를 직렬화하기 만합니다. 지금 내가해야 할 일은 tinyMCE 필드의 입력 ID와 해당 내용을 해당 배열에 추가하는 것입니다.

var $form  = $("#myform"); 
var formData = $("#myform").serialize(); 

var mceContent; 

var tinymceActive = (typeof tinyMCE != 'undefined') && tinyMCE.activeEditor && ! tinyMCE.activeEditor.isHidden(); 

if (tinymceActive) { 
    mceContent = tinyMCE.activeEditor.getContent(); 
} 

그래서 난 내 직렬화 된 배열로 formData이 있고, mceContent는 편집자 내용을 포함하는,하지만 어떻게 내가 편집기 필드 이름과 formData로 내용을받을 수 있나요? 내가 편집자 이름을 tinymce.editors[0].id으로 검색 할 수 있다는 것을 알고 있지만, 내 삶에 대해 formData 배열에 {tinymce.editors[0].id : mceContent}을 추가 할 수는 없습니다. JQuery와 기능 직렬화

답변

0

은 양식에 양식 필드에서 작동 ... 그것은 편집기를 TinyMCE에 올 때 기본 <textarea>을 "숨 깁니다"당신이 serialize()를 호출하고 자바 스크립트를 통해 양식을 제출하면 <textarea>가 비어 있습니다.

/직렬화 양식을 제출하기 전에 tinyMCE.activeEditor.triggerSave() 또는 tinyMCE.get('yourEditorId').triggerSave() 같은 전화 - jQuery의 직렬화 기능이 제대로 형태의 자연 일환으로 <textarea>의 값을 직렬화 수 있도록이 기본 <textarea>의 값을 업데이트 할 TinyMCE에 강제 .

+0

'tinyMCE.activeEditor.triggerSave()'는 알 수없는 함수 오류를 반환했지만'tinyMCE.triggerSave()'가 작업을 수행했습니다. 감사합니다. – Mike