私たちが設計したフォームには、ユーザーが一度に複数の状態を選択できる「States」フィールドがあります。「都道府県」フィールドでの選択に従って入力する必要がある「都市」フィールドがあります。1 つの州のみが選択されている場合、「City」フィールドの値は正しく入力されます。ただし、複数の状態を選択すると正しく表示されません。
同じRubyソリューションを提案してください。
私たちが設計したフォームには、ユーザーが一度に複数の状態を選択できる「States」フィールドがあります。「都道府県」フィールドでの選択に従って入力する必要がある「都市」フィールドがあります。1 つの州のみが選択されている場合、「City」フィールドの値は正しく入力されます。ただし、複数の状態を選択すると正しく表示されません。
同じRubyソリューションを提案してください。
問題は:with
あなたの式observe_field
です。document.getElementById('usa_states_').value
選択したすべての値ではなく、単一の値のみを返します。
Rails でこれを自動的に処理する方法があるかどうかはわかりませんが、1 つの解決策は、選択したすべての値をコンマで区切った文字列を作成する JavaScript 関数を作成することです。例えば
function selectedValuesAsString(multiselect) {
selectedValues = new Array();
for (i = 0; i < multiselect.length; i++) {
if (multiselect[i].selected) {
selectedValues.push(multiselect[i].value);
}
}
return selectedValues.join();
}
を次のように更新:with
します。
:with => "'state='+selectedValuesAsString(document.getElementById('usa_states_')"
最後に、コントローラーアクション内で値を分割します。