1

これを適切に行うWebサイトを見たことがありません...

の 2 つの選択フィールドがある場合、次のようにコーディングします。

<select name="country">
    <option>USA</option>
    <option>France</option>
</select>

<select name="state">
    <option></option>
</select>

次に、国の選択に応じて、AJAX を使用して州フィールドに入力します。

ただし、これは徐々に強化された状態です。Javascript を使用せずにどのように行うのでしょうか? また、どのように拡張する必要がありますか (前の例が最善の方法ではない場合)。

4

2 に答える 2

1

私のお勧めは、国のドロップダウンの横/下に送信ボタンを配置することです。送信されると、サーバーは選択された国の州を入力し、応答を返します。

ここで、ページ読み込み時の JavaScript でこのボタンを非表示にし、変更ハンドラを国のドロップダウンにアタッチして、州を返す AJAX 呼び出しを行います。

そのため、JavaScript が無効になっている場合、ボタンは状態の取得を実行します。有効にすると、AJAX 呼び出しでも同じことが行われます。

于 2012-04-05T12:25:12.213 に答える
1

1 つの解決策は、2 つの選択を結合することです。お気に入り

<select name="countryAndState">
    <option>USA - Alabama</option>
    <option>USA - Alaska</option>
    ...
    <option>France - Alsace</option>
    <option>France - Aquitaine</option>
</select>

またはそれ以上

<select name="countryAndState">
    <optgroup label="USA">
         <option>Alabama</option>
         ...
    </optgroup>
    <optgroup label="France">
         <option>Alsace</option>
         ...
    </optgroup>
</select>

もちろん、少なくとも 2 番目の形式では、オプションvalueが一意であることを確認する必要があります。これは、選択オプションをツリー順に階層的optgroup elementにグループ化するための推奨される方法です。つまり、拡張 JavaScript は DOM からツリー構造を抽出することもできます。

もう 1 つの解決策は、サーバー側の州フィールドに入力することです。つまり、最初に国を選択し、次に州を選択する 2 つのステップにフォームを分割します。これは、選択した国を保存するためにクッキーまたは何かを使用して行うことができます。送信されcountryた値が保存された値と異なる場合は常に、新しい (選択されていない) 状態select要素を出力する必要があります。

于 2012-04-05T12:19:36.727 に答える