前のフィールドでの選択に基づいてフィールドに入力する方法は?

StackOverflow https://stackoverflow.com/questions/1431332

質問

設計したフォームには、「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_')"

そして最後にコントローラーアクション内の値を分割します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top