前のフィールドでの選択に基づいてフィールドに入力する方法は?
-
07-07-2019 - |
質問
設計したフォームには、「States」があります。ユーザーが一度に複数の状態を選択できるフィールド。 「市」があります。 " State"の選択に従って入力されるフィールドフィールド。 「市区町村」の値1つの状態のみが選択されている場合、フィールドは正しく入力されます。ただし、複数の状態が選択されている場合は正しく表示されません。
同じためのRubyソリューションを提案してください。
解決
問題は、 observe_field
の:with
式です。 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_')"
そして最後にコントローラーアクション内の値を分割します。
所属していません StackOverflow