如何在Yii activeForm中为字段添加id前缀

作者:IT技术圈子 浏览量:758   发表于 2024-07-20 09:22 标签:

如有两个表单具有相同的模型属性,因为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()?>