Yii形成textarea字符限制

时间:2016-11-05 18:37:17

标签: php forms yii textarea

我试图通过在textarea中向用户显示来限制角色。但是这段代码似乎无法正常工作。请帮我找错。

 <?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>

这种编码适用于textfield,但不适用于textarea。

3 个答案:

答案 0 :(得分:0)

如果您不关心旧浏览器,则不需要javascript。只需向textArea()添加一个参数:

array('maxlength'=>10)

不确定您使用的是哪个版本的Yii,但是从代码中假设它是Yii 1.x. 您可以在此处找到更多信息:

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

答案 1 :(得分:0)

请试试这个 在视图中,

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

在模型函数规则()中,

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

答案 2 :(得分:0)

在您看来,使用JQuery,您可以尝试使用它或与您的脚本进行比较。主要的变化是使用JQuery id选择器而不是类选择器。 Modelname是您的模型类,fieldname是您的属性:

<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>