私は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」ステートメントが必要だと言われました。私はこれをやろうとしましたが、立ち往生しています。誰でも助けることができますか?他の要素に適用できるように、これを並べ替える必要があります。
どうもありがとう、
マーク。