2009-09-16 6 views
1

私たちが設計したフォームには、ユーザーが一度に複数の状態を選択できる「状態」フィールドがあります。 「都道府県」欄には、「市区町村」欄があります。 「都市」フィールドの値は、1つの州のみが選択されている場合は、正しく入力されます。ただし、複数の状態が選択されている場合は正しく表示されません。前のフィールドの選択に基づいてフィールドに値を設定するにはどうすればよいですか?

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

+0

これまでのコードを投稿してください。 – mikej

+0

以下は、米国州のコード のコードです。<%= select_tag 'usa [states] []'、options_from_collection_for_select(state、:state、state、nil):multiple => true、class => "multi_select "%> 私は、どの状態が選択されているかを観察するために観測フィールド(AJAX)を使用しています<%= observe_field:usa_states_、:url => {:controller =>" logins "、:action => 'deliverable_cities'、:id '=' '' = '' '' '=' '' = '' '=' '' = '' 1 '}、 > 州が選択されると、その州のすべての都市が都市選択リストに表示されます – Aditya

+0

これは1つの州だけを選択するとうまくいきます。しかし、私が複数の状態を選択するとき、私はajaxを通してただ1つの値を得るので、その単一の状態の都市だけを得る。 – Aditya

答えて

1

問題はobserve_field:withという表現です。 document.getElementById('usa_states_').valueは、選択したすべての値ではなく、単一の値のみを返します。

これをRailsで自動的に処理する方法があるかどうかはわかりませんが、選択したすべての値の文字列をコンマで区切って作成するJavaScript関数を作成する方法もあります。例えばその後、

​​

とのようなものであることを:withを更新:

:with => "'state='+selectedValuesAsString(document.getElementById('usa_states_')" 

、その後、最終的にあなたのコントローラのアクション内の値を分割します。

+0

これはうまくいきます。感謝万円。 – Aditya

関連する問題