【问题标题】:Yii form textarea character limitYii 表单 textarea 字符限制
【发布时间】:2016-11-05 18:37:17
【问题描述】:

我正在尝试通过在 textarea 中向用户显示来限制字符。但是这段代码 sn-p 似乎不起作用。请帮我找出错误。

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

此编码适用于文本字段,但不适用于文本区域。

【问题讨论】:

  • 你的问题解决了吗?

标签: php forms yii textarea


【解决方案1】:

如果您不喜欢旧浏览器,则不需要 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

【讨论】:

  • 你好,垫子,我试过了,但没用。我听说 textarea 没有 maxlength 值。我正在使用 Yii 1.1
  • Yii 中没有参数“maxlength”,但在 html5 中有,它应该可以在大多数现代浏览器中使用。您签入的是哪个浏览器?生成的 html 在 textarea 中有属性 maxlength="10" 吗?
【解决方案2】:

请试试这个 在视图中,

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

在模型函数rules()中,

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

【讨论】:

  • 此技术仅适用于提交。我想在用户输入文本区域时尝试一下。
  • 不,'maxlength' => 300,在用户输入文本区域时也有效。请尝试。
【解决方案3】:

在您看来,使用 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-03
    • 2016-12-16
    • 2011-06-02
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多