我正在尝试一个字段的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函数返回$thishttp://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#textInput()-detail
因此getInputIdhttp://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
 ?>

但根据文档,这是受保护的方法,因此不能调用外部类

09-20 09:51