我正在尝试一个字段的id以便在js中使用它。我已经阅读了yii2文档,发现activefield有一个方法“getinputid”,但是如何调用它呢?
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?>
<?php $form->end(); ?>
我可以将结果保存在var中的表单>字段中,但是它是一个字符串,因此不可能使用它。
我一直在检查activeform代码,我发现它有两个方法:beginfield和endfield,也许这和什么有关?任何想法都将受到赞赏。
最佳答案
默认情况下,he字段的id是$model-$attribute
即
如果您使用的是User
模型和username
表格,即
<?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?>
ID将
user-username
也可以为字段手动指定ID。
<?= $form->field($model, 'username')->textInput(['maxlength' => true, 'id' => 'my_id']) ?>
在这种情况下,输入的id将
my_id
根据最新评论编辑:(我没有尝试过,但根据文档解释)
因为
textInput
函数返回$this
http://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#textInput()-detail因此
getInputId
(http://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#getInputId()-detail)必须可以调用为<?php
$form->field($model, 'username')->textInput(['maxlength' => true])->getInputId(); // this will not work
?>
但根据文档,这是受保护的方法,因此不能调用外部类