0

私が設計している html フォームのページ読み込み時に非表示にする div がいくつかあります。テキスト フィールドを含むものもあれば、ドロップダウン ボックスを含むものもあります。フォームで特定のラジオ ボタンがクリックされたときに表示されます。divを非表示にするためにjavascriptを使用しています。私が使用しているコードは次のとおりです。

<script language="JavaScript"> 

 function start() {
 hide('hideablearea');
 hide('nontenant');
 hide('conftype');
 hide('rec_roomlayout');
 hide('req_roomlabel');
 hide('req_roomdrpdwn');    
}
window.onload = start;
</script>

それは完全に機能します。私の問題は...フォームが送信され、エラーが発生し(たとえば、ユーザーが必須フィールドに入力するのを忘れた)、[戻る]ボタンをクリックすると、この関数が再び起動してすべてが非表示になります..そして、非表示のdivが必要ですこの時点で表示する情報があります。これを達成する方法について何か考えはありますか?

前もって感謝します!

K

4

2 に答える 2

0

エラー メッセージを表示した後、ユーザーが [戻る] をクリックして前のページに戻り、情報を修正する必要がある場合は、設計を再考する必要があります。前のページには、エラー メッセージの概念がありません。これを修正するには2つの方法があります。

1) JavaScript ですべてのエラー チェックを行う

スクリプトでエラー処理を実装すると、ページが送信される前に、エラーや不足している情報をユーザーにすぐに通知できます。すべてがチェックアウトされた場合にのみ、フォームを送信します。

2) ポストバック時にフォームを再表示する

ユーザーがフォームを送信すると、サーバーで必要なエラー チェックが行われます。次に、ユーザーが入力したすべての情報を使用してフォームを再度レンダリングし、エラー メッセージを表示します。このページでは、次のように記述します。

<script>var hasErrors = true;</script>

ページにエラーがある場合、クライアント側のスクリプトは関連情報を非表示にしないようにすることができます。このモデルでは、間違いを修正するためにユーザーが [戻る] ボタンをクリックする必要はありません。

于 2013-01-25T20:01:09.747 に答える
0

id 属性を div に配置して、div に表示するメッセージがあるかどうかを制御し、それらを非表示にできません。

このような:

<script type="text/javascript">
    function start() {
        if (document.getElementById('hideablearea') == "") {
            hide('hideablearea');
        }
        ...
    }
</script>
于 2013-01-25T20:01:46.390 に答える