frontend_model
2つのフィールドにhtmlを使用しない場合、次のようになります
<tr id="row_you_dependency_field_id">
<td class="label"><label for="you_dependency_field_id">Dependency Field</label></td>
<td class="value">
<select id="you_dependency_field_id" name="groups[general][fields][you_dependency_field_id][value]" class=" select">
<option value="1">Yes</option>
<option value="0" selected="selected">No</option>
</select>
</td>
</tr>
<tr id="row_your_dependent_field_id">
<td class="label">
<label for="your_dependent_field_id">Dependent Field</label>
</td>
<td class="value">
<select id="your_dependent_field_id" name="groups[general][fields][your_dependent_field_id][value]" class=" select">
<option value="1">Yes</option>
<option value="0" selected="selected">No</option>
</select>
</td>
</tr>
依存フィールドを表示/非表示にするJavaScriptは次のようになります
new FormElementDependenceController({"your_dependent_field_id":{"you_dependency_field id":"1"}});
また、両方のIDがHTMLに存在するため、表示/非表示は正常に機能します。
ただしfrontend_model
、2番目のフィールドの値を使用する場合、カスタムブロックによってレンダリングされmodule/adminhtml_form_field_test
、依存フィールドのIDが含まれておらず、JavaScriptは何を非表示にするかわかりません。
<tr id="row_you_dependency_field_id">
<td class="label"><label for="you_dependency_field_id">Dependency Field</label></td>
<td class="value">
<select id="you_dependency_field_id" name="groups[general][fields][you_dependency_field_id][value]" class=" select">
<option value="1">Yes</option>
<option value="0" selected="selected">No</option>
</select>
</td>
</tr>
<tr id="row_your_dependent_field_id">
<td class="label">
<label for="your_dependent_field_id">Dependent Field</label>
</td>
<td class="value">
...
//The output of your frontend_model
...
</td>
</tr>
の_toHtml()メソッドに移動しmodule/adminhtml_form_field_test
、出力をラップして、そのdiv
IDを指定します
$fieldId = $this->getElement()->getId();
//your html
<div id="field id here">
//your frontend_model html
</div>