1

次のコードは、親選択リストの値に応じて、1 つの (多くの非表示の) 子選択リストを示しています。スクリプトは、(親の選択リストで) 値が選択されているかどうかをチェックし、選択されている場合は、対応する子の選択リストを表示します。しかし、ユーザーが親の選択リストの値を選択し、フォームを投稿すると、子の選択リストが入力されていないというメッセージが表示され、(ほとんどの場合) ブラウザで [戻る] ボタンを押しても、親の選択リストにはまだ値があります (ブラウザだと思います)デフォルト) であり、子選択リストは非表示になっているため、ユーザーが混乱する可能性が高くなります。

これはどのように解決できますか?

Javascript:

    $('#parent-list').live("change",function() {
        var value = $(this).find('option:selected').val();
        $("#child-list-"+value).slideDown(200).siblings().hide();
        return false;
    });

HTML:

<select id="parent-list" name="parent">
  <option value="1">1</option>
  ...
</select>
<select id="child-list-1 style="display:hidden">
   <option value="a">a</option>
</select>
<select id="child-list-2 style...
4

2 に答える 2

1

私は通常、HTML を生成するコードを通じて、またはドキュメントの準備ができたときに JavaScript で、ページの読み込みごとに適切なオプションを選択します。

于 2012-07-15T23:55:08.643 に答える
0

これはよくある問題だと思います。私が知る限り、完全な解決策はありません。

ページが無効な状態にあるかどうかを確認する方法を見つける必要があります。たとえば、setInterval依存関係を確認して必要に応じて再レンダリングできる更新タイマー ( ) などがあります。

ユーザーが POST の後に戻るボタンを押すと、(少なくとも一部のブラウザーでは) 警告が表示されます。ユーザーが問題に気付くことを信頼することはできませんが...

編集: また、ユーザーがエラー メッセージのために別のページにリダイレクトされるのはなぜですか? エラーが発生した場合、代わりに彼をフォームにリダイレクトできますか、またはできればフォーム送信前にクライアント側の検証を実行できますか?

于 2012-07-16T02:53:23.063 に答える