2012-01-05 1 views
9

양식의 유효성을 검사해야합니다. 이 양식에는 일부 드롭 다운과 tinyMCE 편집기가 있습니다. 각 필드 뒤에 공백 인 경우 "Required"문자열을 추가하여이 양식의 유효성을 검사합니다. 그러나 편집기가 비어 있으면 tinyMCE 편집기의 유효성을 검사 할 수 없습니다.tinyMCE 편집기 옆에 문자열을 추가하여 비어있는 경우 tinyMCE 편집기의 유효성을 검사하려면 어떻게합니까?

tinyMCE.get('tinyedotor').getContent(); 

행운은 없습니다.

여기 내 fiddle

답변

12

getContent()는 잘 작동합니다. 귀하의 바이올린에는 편집기 값에 대한 폼 유효성 검사 코드가 포함되어 있지 않습니다. 여기서는 매우 중요합니다. 이 시도 :

var editorContent = tinyMCE.get('tinyeditor').getContent(); 
if (editorContent == '') 
{ 
    // Editor empty 
} 
else 
{ 
    // Editor contains a value 
} 

Forked fiddle

은 또한 당신이 당신의 select 드롭 다운에 대해 여러 id의 선언했습니다 유의하십시오.

편집 : 당신은 getContainer() 방법 편집기 컨테이너의 id 얻을 수 있습니다 : tinyMCE.get('tinyeditor').getContainer(). 에디터 후 오류 메시지를 삽입하면 다음과 같은 것이 될 것이다 :

$('<span class="error">Editor empty</span>').insertAfter($(tinyMCE.get('tinyeditor').getContainer())); 

당신은 아마 오류 메시지가 할 것이다, 그래서이, 그러나, 사용자가 제출 버튼을 클릭 새로운 span 때마다 생성됩니다 컨테이너에 고유 한 id이 있는지 확인하고 컨테이너를 삽입하기 전에 컨테이너가 이미 있는지 확인하십시오.

편집 2 : Updated fiddle.

+0

@Victor : 좋아, 할 수 있지만 내 문제는이 문자열을 tinyMCE 옆에두고있다. Idon't는 tinymCe의 클래스/id를 얻는 방법을 알고있다. 그래서 나는 $ (". errormrssage")와 같은 것을 할 수있다. appendTo ('tinyMCEEditor의 class/id'); – Mike

+0

@Mike : 추가 된 코드를 참조하십시오. – Viktor

+0

@Victor :이 코드를 추가했는데 여기에 메시지를 제거하기 위해 더 필요한 것이있다. http://jsfiddle.net/bvNMc/13/ – Mike

0

getContent()하는 길을 가야하는 것입니다. tinyMCE.activeEditor 개체를 사용하고 getContent()을 호출하거나 사용자가 수행하는 것처럼 ID로 편집기 인스턴스를 가져올 수 있습니다.

ID에 오타가있는 것으로 보입니다. 아마도이 문제가 원인 일 수 있습니다.

tinyMCE.get('tinyedotor').getContent(); 

아마해야합니다 :

tinyMCE.get('tinyeditor').getContent(); 
+0

질문에 그냥 입력되었지만 내 코드가 정확합니다. 피델을 확인 했습니까 – Mike

+0

그래, 나는'setContent' 호출 만'getContent' 호출을 보지 못했습니다. 올바른 코드를보고 있습니까? 또한, 현재 오류가 발생하고 있습니다 :'Uncaught SyntaxError : Unexpected identifier' – buley

1

원하는 것을 쉽게 할 수 있습니다. 그녀는 내 솔루션으로 link to a fiddle입니다. 적절한 방법입니다)

var content = tinymce.get('tinymceEditor').getContent({format: 'text'}); 
if($.trim(content) == '') 
{ 
    // editor is empty ... 
} 
+0

editor message empty는 tinyMCE 편집기의 맨 윗줄과 나란히 있어야하며, 지금은 가운데에 있습니다. 위치 절대 값을 사용하고 상단 및 왼쪽 치수를 사용할 수 있지만 내 페이지에 3 개의 주석 편집기가 있고 일부 논리에 따라 하나만 표시되므로 방해가됩니다. 이 에디터 메시지를 tinyMCE 박스와 정렬하여 첫 줄에 표시 할 수 있습니까? – Mike

+0

@Mike : 오류 메시지가 포함 된 표 셀의 표 셀 내용을 정렬하십시오.''. – Viktor

+0

@Viktor :하지만 div 레이아웃이 있습니다. – Mike

7

이이 콘텐츠를 구문 분석 HTML없이 비어 있는지 확인하기 위해 할 수있는 ('.bgcolor') 검증이 발생하면 빨간색 테두리가있는 'tinyeditor'주위 사업부에 불과하다 :

var content = tinyMCE.get('tinyeditor').getContent(), patt; 

      //Here goes the RegEx 
      patt = /^<p>(&nbsp;\s)+(&nbsp;)+<\/p>$/g; 

      if (content == '' || patt.test(content)) { 
       $('.bgcolor').css("border", "1px solid Red") 
       return false; 
      } 
      else { 
       $('.bgcolor').removeAttr("style") 
       return true; 
      } 

주 -
다음은 정규식을 가진 완벽한 솔루션입니다.

+0

공백이 있으면 html 형식으로 더 이상 비어 있지 않으므로 매우 유용합니다. – Memochipan

+0

언젠가 사용자가 아무것도 쓰지 않고 파일/이미지를 삽입하기 때문에 형식 필터링'{format : 'text'}'을 제거 할 때 더 유용 할 것입니다. –

1

의 getContent를 (사용하지만 사용자가 공간을 입력하면 어떻게 !! ?? :

관련 문제