2013-06-15 3 views
1
$('.button-save').click(function(b){ 
       b.preventDefault(); 
       var title = $('#title').val(), 
        category = $('#category').val(), 
        file = $('#file').val(), 
        short_content = tinyMCE.get('#short_content').getContent(), 
        content = tinyMCE.get('#content').getContent(), 
        date = $('#date').val(), 
        language = $('#language').val(); 
       alert(short_content); 
       $.ajax({ 
        type: 'POST', 
        url: '/admin/save', 
        data: { 
         title:title, 
         category:category, 
         file:file, 
         short_content:short_content, 
         content:content, 
         date:date, 
         language:language 
        }, 
        success: function(data){ 
         $('.adm-notification').html(data); 
        } 
       }); 
      }); 

두 개의 텍스트 영역 (short_content, content)이 있습니다. 나는 tinyMCE.get ('# content'). getContent()를 통해 그들을 얻으려고했다. 하지만 난주석 텍스트 영역 값 오류 - 캔트 해소

Uncaught TypeError: Cannot call method 'getContent' of undefined

HTML 코드

<form action=\"\" method=\"post\"> 
      <div class=\"element\"> 
       <label for=\"name\">Page title <span class=\"red\">(required)</span></label> 
       <input id=\"title\" name=\"name\" value=".$edit['title']." class=\"text\" /> 
      </div> 
      <div class=\"element\"> 
       <label for=\"category\">Category <span class=\"red\">(required)</span></label> 
       <input id=\"category\" name=\"category\" value=".$edit['category']." class=\"text\" /> 
      </div> 
      <div class=\"element\"> 
       <label for=\"attach\">Attachments</label> 
       <input type=\"file\" id=\"file\" name=\"attach\" /> 
      </div> 
      <div class=\"element\"> 
       <label for=\"short-content\">Short content <span class=\"red\">(required)</span></label> 
       <textarea name=\"short_content\" id=\"short_content\" class=\"textarea\" rows=\"10\">".$edit['short_content']."</textarea> 
      </div> 
      <div class=\"element\"> 
       <label for=\"content\">Long content <span class=\"red\">(required)</span></label> 
       <textarea name=\"content\" id=\"long_content\" class=\"textarea\" rows=\"10\">".$edit['content']."</textarea> 
      </div> 
      <div class=\"element\"> 
       <label for=\"date\">Date <span class=\"red\">(required)</span></label> 
       <input id=\"date\" name=\"date\" class=\"text\" value=".$edit['date']." /> 
      </div> 
      <div class=\"element\"> 
       <label for=\"language\">Language <span class=\"red\">(required)</span></label> 
       <input id=\"language\" name=\"language\" value=".$edit['lang']." class=\"text\" /> 
      </div> 
      <div class=\"entry\"> 
       <button type=\"submit\" id=\"button-save\" class=\"add button-save\">Save page</button> 
      </div> 
     </form> 

방법을 해결하기 위해 오류 받고 있어요?

+0

tinymce 편집기가 초기화되었는지 확인 하시겠습니까? – Thariama

답변

0

#없이 텍스트 영역의 id을 제공해야합니다.

tinyMCE.get('long_content').getContent() 
tinyMCE.get('short_content').getContent() 

btw를 사용하려면 양식을 제출할 것인지 아니면 JavaScript로 값을 읽을 것인지 결정한 다음 서버로 보내야합니다. 여기서 용액 JS로 독출 :

<script type="text/javascript"> 
    tinyMCE.init({ 
      mode : "textareas" 
    }); 


    $(function(){ 
     $('#button-save').click(function(){ 
      console.log("ok"); 
      var short_content = tinyMCE.get('short_content').getContent(); 
      var content = tinyMCE.get('long_content').getContent(); 
      alert(short_content); 
      alert(content); 
     }); 
    }); 
</script> 


<textarea name="short_content" id="short_content" >'short_content'</textarea> 
<textarea name="long_content" id="long_content" >'content'</textarea> 

<button id="button-save" class="add button-save">Save page</button> 

Same as a working fiddle한다.

+0

여전히 동일합니다. 정의되지 않은 –

+0

의 'getContent'메소드를 호출 할 수 없습니다. 'tinyMCE.init'를 어딘가에 호출 하시겠습니까? 바이올린으로 답변을 업데이트했습니다. 아마도 코드로 바이올린 링크를 게시 할 수 있습니까? – mb21

+0

http://jsfiddle.net/52Yt7/ - 나의 초기 코드 –