如何在Yii activeForm中为字段添加id前缀
如有两个表单具有相同的模型属性,因为Yii2将字段id生成为ModelName fieldName,所以生成的字段如下:
<select name="Channel[channel]" class="form-control" id="channel-description">
我尝试在Activeform中使用fieldConfig,但它不会将id添加到字段本身。
方法一:
您应该简单地使用ActiveForm::field()的第三个参数:
$options:字段对象的附加配置。
例如:
$form->field($model, 'channel', ['inputOptions' => ['id' => 'channel-description']])
但如果你真的想给所有字段id添加前缀,你应该重写ActiveForm。
方法二:
如果你想保存输入id结构“{model}-{属性}”。
使用yii\helpers\Html::getInputId()生成“{model}-{attribute}“输入id,并用您的自定义前缀完成。
$form->field($model, 'name')->textInput(['id' => 'custom-' . Html::getInputId($model, 'name')])
方法三:
如果为输入元素设置了自定义id,则可能需要相应地调整[$selectors]]。
<?= $form->field($searchModel, 'regId',[ 'selectors' => ['input' => '#company-vacancy-regId'], 'inputOptions' => ['id' => 'company-vacancy-regId'], ])->widget()?>