2016-11-05 4 views
0

Ich versuche zu implementieren, begrenzen Sie das Zeichen durch die Anzeige an den Benutzer in Textarea. Aber dieses Code-Snippet scheint nicht zu funktionieren. Bitte helfen Sie mir, den Fehler zu finden.Yii Form Textbereich Zeichen Grenze

<?php echo $form->textArea($model, 'tr_summary', array('rows' => 2, 'cols' => 50, 'class' => 'form-control fldRequired')); ?> 
<div class="errorMessage Tour_tr_summary"></div> 

<script type="text/javascript"> 

    $(".fldRequired").keyup(function(e) { 
    fldId = $(this).attr('id'); 
    if(fldId == 'Tour_tr_summary' && $(this).val().length > 20) { 
    $('.'+fldId).html('Maximum 20 characters allowed'); 
    e.preventDefault(); 
    } 
}); 

</script> 

Diese Codierung funktioniert perfekt für Textfeld, aber nicht Textarea.

+0

Haben Sie Ihre Frage gelöst haben? –

Antwort

0

Kein JavaScript wird benötigt, wenn Sie alte Browser nicht interessieren. Gerade in der textarea() ein weiteren Parameter:

array('maxlength'=>10) 

Nicht sicher, welche Version von Yü Sie verwenden, aber aus dem Code vorausgesetzt, es ist Yü 1.x Weitere Informationen finden Sie hier:

http://www.w3schools.com/tags/att_textarea_maxlength.asp http://www.yiiframework.com/doc/api/1.1/CActiveForm#textArea-detail

+0

Hallo Mat, ich wurde ausprobiert aber es funktioniert nicht. Ich habe gehört, dass es keinen maxlength Wert für Textarea gibt. Ich benutze Yii 1.1 –

+0

gibt es keine Parameter "maxlength" in Yii, aber es gibt in HTML5, sollte es in den meisten modernen Browsern funktionieren. In welchem ​​Browser hast du eingecheckt? Hatte das generierte HTML im textarea das Attribut maxlength = "10"? – Mat

0

Bitte versuchen Sie diese In Ansicht,

<?php echo $form->textArea($model, 'Details', array('maxlength' => 300, 'rows' => 6, 'cols' => 50)); ?> 

In Modellfunktion Regeln(),

array('Details', 'safe'), 
array('Details', 'length', 'max' => 300), 
+0

Diese Technik funktioniert nur in submit. Ich möchte es versuchen, während der Benutzer das Textfeld eingibt. –

+0

Nein, 'maxlength' => 300, funktioniert, während der Benutzer auch im Textfeld eingibt. Bitte versuche. – Arya

+0

Nein, es funktioniert nicht. –

0

Ihrer Ansicht nach mit JQuery, können Sie mit diesem versuchen oder mit Ihrem Skript zu vergleichen. Die wichtigste Änderung ist die Verwendung des JQuery-ID-Selektors anstelle des Klassenselektors. Modelname ist Ihre Modellklasse und fieldname ist Ihr Attribut:

<script type='text/javascript'> 

$('#Modelname_fieldname').keyup(function() { 
     characterlimit(); 
}); 

function characterlimit() 
{ 
     var text_max = 100; // Desired Character Limit 
     var text_length = $('#Modelname_fieldname').val().length; 
     var text_remaining = text_max - text_length; 

     if(text_remaining == 0) 
     { 
      $('#Modelname_fieldname').addClass('error'); 
     } 
     else 
     { 
      $('#Modelname_fieldname').removeClass('error');  
     }  
} 
</script> 
Verwandte Themen