1

私たちが設計したフォームには、ユーザーが一度に複数の状態を選択できる「States」フィールドがあります。「都道府県」フィールドでの選択に従って入力する必要がある「都市」フィールドがあります。1 つの州のみが選択されている場合、「City」フィールドの値は正しく入力されます。ただし、複数の状態を選択すると正しく表示されません。

同じRubyソリューションを提案してください。

4

1 に答える 1

1

問題は: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_')"

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

于 2009-09-16T10:09:29.153 に答える