我正在用YII2(約會網站)構建項目。我有幾個「表單模型」,我的意思是用於創建具有活動表單的表單的模型。在某些表單/模型中,我有相同的字段,例如「註冊」頁面和「配置文件」頁面中顯示的「性別」和「位置」字段。只有一些字段是相同的,其他字段是不同的,所以我不能使用相同的模型用於不同的頁面/表單。YII2:在不同的活動窗體形式及其ID中的相同元素
現在,問題是,當我使用不同的模型創建主動記錄表單時,字段的ID和CSS類也不同。
例如,我有一個名爲'SignupForm'的模型和一個名爲'EditProfileForm'的模型。鑑於(模板)我有這樣的
<?php $form = ActiveForm::begin(['id' => 'form']); ?>
<?= $form->field($model, 'test_field') ?>
<?php ActiveForm::end(); ?>
代碼如果我執行了不同型號的代碼我得到不同的字段名稱(標識): 「editprofileform-test_field」 ID爲「EditProfileForm」模式 和 「SignupForm」模型的「signupform-test_field」ID。
它爲什麼會變?因爲我想爲相同的元素應用相同的CSS樣式和JavaScript處理程序。有沒有辦法讓使用不同模型生成的活動表單的ID和CSS類相同?
EDITED
一種解決方案(由@marche張貼)就是ID參數添加到文本字段
<?php $form = ActiveForm::begin(['id' => 'form']); ?>
<?= $form->field($model, 'test_field')->textInput([
'class' => 'some-css-class',
'id' => 'my-id',
]) ?>
<?php ActiveForm::end(); ?>
它適用於文本輸入,但我也有自動完成插件
<?= $form->field($model, 'city')->widget(\yii\jui\AutoComplete::classname(), [
'clientOptions' =>[
'source' => new JsExpression("function(request, response) {
$.getJSON('/my-script?country='+country_id, {
term: request.term
}, response);
}
")
],
],['id'=>'my-test-id']) ?>
正如你所看到的,我嘗試將ID參數添加到AutoComplete中,它不起作用。請告訴我如何將ID參數分配給自動完成小部件。
謝謝您的回答。它適用於文本字段,但我無法使它適用於自動完成小部件字段。請參閱編輯問題 – user2265529
編輯我的回覆。 – marche