我试图通过在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。
答案 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>