2

私はJQueryを初めて使用し、ユーザーが現在のページから離れて戻ったときにフォーム上の要素の表示/非表示ステータスをJQueryに記憶させる方法に困惑しています。つまり、ドロップダウンの質問から選択すると、2 番目の質問 (テキスト ボックス) が表示され、回答を入力し、組み込みのボタンをクリックして次のページに移動し、ボタンをクリックします。戻る。

質問の下のコードでは、IPQ_OTHRES は現在のページのオンロードで非表示になっているため、次のページから戻ると、前のドロップダウンの質問で選択したにもかかわらず、明らかに再び非表示になります。IPQ_OTHRES は、ユーザーがドロップダウン メニューの質問 IPQ_THREE から「N」を選択したときに表示されるように設定されています。

// Controls the show/hide of Other Resident Country based on answer to IPQ_THREE

        $('#IPQ_OTHRES').hide().removeClass('mandatoryInput');
        $('#IPQ_OTHRES_DIV').hide();

        $('#IPQ_THREE').change(function(){
            var IPQ_THREEVal = $('select[name=IPQ_THREE] option:selected').val();

                if (IPQ_THREEVal == "N"){
                        $('#IPQ_OTHRES_DIV').show()
                        $('#IPQ_OTHRES').show().addClass('mandatoryInput');
                    } else if (IPQ_THREEVal == "Y"){
                        $('#IPQ_OTHRES_DIV').hide()
                        $('#IPQ_OTHRES').hide().removeClass('mandatoryInput');
                    } else {
                        $('#IPQ_OTHRES_DIV').hide()
                        $('#IPQ_OTHRES').hide().removeClass('mandatoryInput');
                }
            });

可能な解決策として、JQuery cookie と localStorage について読んでいます。これまでに最も近い答えは、この質問の投稿からのものです: Jquery show/hide resetting when page reloads

ただし、ドロップダウンではなくラジオボタンに基づいて表示/非表示を使用します。IPQ_THREE onload の値を取得し、それに応じて表示/非表示を行うには、最初の 2 行に独自の「if..else」ステートメントが必要だと言われました。私はこれをやろうとしましたが、立ち往生しています。誰でも助けることができますか?他の要素に適用できるように、これを並べ替える必要があります。

どうもありがとう、

マーク。

4

1 に答える 1