2013-05-09 6 views
3

Я знаю, что Primefaces предоставляет функциональные возможности для остающегося для р характера: inputTextarea, как показано в коде нижеОсталось символов для р: редактор Primefaces

<p:inputTextarea rows="1" cols="85" counter="counter" maxlength="100" counterTemplate="{0} characters remaining" value="#{managedBean.inputvalue}" ></p:inputTextarea> 
<h:outputText /> 
<h:outputText id="counter" /> 

Но я хочу сделать то же самое в р: редактор. Как это сделать? Является ли первичность такой функциональностью или я должен достичь этого другими способами (например, кодирование этой функции).

ТИА

+0

Просто FYI 'p: editor' теперь устарел в пользу' p: textEditor', который вообще не предлагает 'maxlength'. И с Primefaces: 6.1.RC2 (издание сообщества), 'p: editor' выдает предупреждение о том, что параметр Maxlength устарел и будет удален в будущей версии. –

ответ

6

<p:editor не имеет для этого варианта, вы можете использовать jquery, чтобы решить это. Мое решение связать KeyUp событие в редакторе я только испытанного, мой пример имеет одну форму (ID: фм), один редактор (ID: rongnk), один outputtext (ID: TXT):

<h:body onload="bindiframe()"> 
     <h:form id="fm"> 
      <p:editor id="rongnk" value="xxx"> 
      </p:editor> 
      <h:outputText id="txt"/> 
      <script type="text/javascript"> 
       var imax = 50; 
       function bindiframe(){ 
        $('#fm\\:rongnk').find('iframe').contents().find("body").on('keyup', function(e) { 
         ilength = $('#fm\\:rongnk').find('iframe').contents().find("body").text().length; 
         $('#fm\\:txt').html('Remain:' + (imax - ilength)); 
        }); 
       } 
      </script> 
     </h:form> 
    </h:body> 
+0

Большое спасибо за ответ – SXV

+0

Добро пожаловать :) –

2

Насколько я могу судить по документации <p:editor> tag нет атрибута с функциональностью «счетчик». Тем не менее, есть атрибут maxlength.

Итак, ваш лучший выбор - прикрепить функцию JavaScript для обработки события change, указав onchange="checkTextLength(this)". Чтобы написать эту функцию, вам нужно вычислить разницу между максимальной длиной текста и текущей длиной текста с помощью API-интерфейсов клиентского интерфейса PrimeFaces и на основе обновления результата заполнителя.

+0

Я не вижу атрибут 'maxlength'? –

+0

@RongNK Посмотрите лучше: последний. – skuntsel

+0

ok, 'width' attribute, upvote для вас предложение :) –

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