2012-06-12 3 views
2

Я пытаюсь использовать nicedit (http://nicedit.com/) в форме для своего сайта (что я используя для отправки рассказов). Форма включает несколько текстовых областей(). Один из них предназначен для содержания короткого рассказа, в который я хочу использовать nicedit. Другая текстовая область предназначена для тегов, которые я не хочу использовать nicedit. Однако nicedit применяется к обоим.Как сделать Nicedit влиять только на одно текстовое поле на странице, как и на любое текстовое поле на странице

Это Java-код, я использую для вызова кода nicedit

<script type="text/javascript" src="core/rte.js"></script> <script type="text/javascript"> 
//<![CDATA[ 
bkLib.onDomLoaded(function() { nicEditors.allTextAreas() }); 
//]]> 

Я проверил в nicEdit.js и allTextAreas() соответствует этому:

allTextAreas : function(nicOptions) { 
var textareas = document.getElementsByTagName("textarea"); 
for(var i=0;i<textareas.length;i++) { 
nicEditors.editors.push(new nicEditor(nicOptions).panelInstance(textareas[i])); 
} 
return nicEditors.editors; 
}, 

Я также исследовал в ingetnet и не мог найти ответа на вопрос о том, как сделать только одну область текста затронутой кодом nicedit. Может ли кто-нибудь помочь?

ответ

13

Глядя на код, который вы в курсе, что это должно работать:

<script type="text/javascript" src="core/rte.js"></script> 
<script type="text/javascript"> 
//<![CDATA[ 
bkLib.onDomLoaded(function() { 
    nicEditors.editors.push(
     new nicEditor().panelInstance(
      document.getElementById('myNicEditor') 
     ) 
    ); 
}); 
//]]> 
</script> 

Просто дайте текстовое поле в зависимости от того идентификатор используется:

<textarea id="myNicEditor"></textarea> 
+0

Спасибо! Я отлично работал! Я бы проголосовал за ваш ответ, но у меня недостаточно репутации: P – user1373823

+0

Я пытаюсь сделать этот шаг дальше и применить его к динамическому идентификатору. – user734063

+0

@ Натан-стрит Как удалить ВСЕ экземпляры одновременно? – Volatil3

1

Я сделал это для всех прокручиваемым по тэгу с использованием оригинала функционируют как начальная точка

<script type="text/javascript"> 

bkLib.onDomLoaded(function() { 

    var textareas = document.getElementsByTagName("textarea"); 

    for(var i=0;i<textareas.length;i++) 
    { 
     var myNicEditor = new nicEditor(); 
     myNicEditor.panelInstance(textareas[i]); 

    } 
}); 

1

Для тех, кто ищет, чтобы сделать это с несколькими текстовой области по его имени класса, я использую Nathan Wall's example с некоторыми изменениями:

<script type="text/javascript"> 
    //<![CDATA[ 
    bkLib.onDomLoaded(function() { 
    elementArray = document.getElementsByClassName("nice-edit"); 
    for (var i = 0; i < elementArray.length; ++i) { 
     nicEditors.editors.push(
     new nicEditor().panelInstance(
      elementArray[i] 
     ) 
    ); 
    } 
    }); 
    //]]> 
</script> 

использовать так много текстовых областей, как вы хотите с именем класса nice-edit:

<textarea class="nice-edit"></textarea> 

В Rails Я использую CoffeeScript и это мой модифицированный код:

$ -> 
    #<![CDATA[ 
    elementArray = document.getElementsByClassName("nice-edit") 
    i = 0 
    while i < elementArray.length 
    nicEditors.editors.push new nicEditor(fullPanel: true).panelInstance(elementArray[i]) 
    ++i 
    #]]> 

Вы заметите, что я ком удалил линию bkLib.onDomLoaded и только что назвал равноценность функции документа $ ->. Причина в том, что bkLib.onDomLoaded не загружается из-за turbolinks. Он работает только с обновлением. Вот почему я его удалил.

+0

Точно то, что я хочу :) tnx – Stefan

Смежные вопросы