Yii2。表单获取输入 ID
Yii2. Form get Input Id
我正在尝试获取字段的 ID,以便在 js 中使用它。我已阅读 Yii2 文档并发现 ActiveField 有一个方法 "getInputId",但我该如何调用它?
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?>
<?php $form->end(); ?>
我可以将 $form->field 的结果保存在一个 var 中,但它是一个字符串,所以不能那样使用它。
我一直在检查 ActiveForm 代码,发现它存在 2 个方法:beginField 和 endField,也许与此有关?任何想法将不胜感激。
我找到了一个很好的解决方案。 Html helper 中有一个方法 "getInputId"。
我原来的问题尚未解决。如何使用 activeField 中的 "getInputId" 方法?
<?= Html::getInputId($model, 'phone'); ?>
默认情况下,他字段的 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
函数是return$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
?>
但根据文档,这是受保护的方法,因此无法在 class
外部调用
我正在尝试获取字段的 ID,以便在 js 中使用它。我已阅读 Yii2 文档并发现 ActiveField 有一个方法 "getInputId",但我该如何调用它?
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?>
<?php $form->end(); ?>
我可以将 $form->field 的结果保存在一个 var 中,但它是一个字符串,所以不能那样使用它。
我一直在检查 ActiveForm 代码,发现它存在 2 个方法:beginField 和 endField,也许与此有关?任何想法将不胜感激。
我找到了一个很好的解决方案。 Html helper 中有一个方法 "getInputId"。 我原来的问题尚未解决。如何使用 activeField 中的 "getInputId" 方法?
<?= Html::getInputId($model, 'phone'); ?>
默认情况下,他字段的 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
函数是return$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
?>
但根据文档,这是受保护的方法,因此无法在 class
外部调用