cshtmlビューの中に2つのオプションがあるドロップダウンリストがあります。選択が "True"を返した場合、2つの日付ピッカーを持つコンテナが表示されるので、ユーザーはデータ範囲を選択できます。ドロップダウンオプションを切り替えると、両方の日付ピッカーにそれぞれの値が割り当てられます。javascriptでcshtmlビューオブジェクトの価値を保持する方法は?
$("#ExpirationChoice").change(function() {
var val = $(this).val(); //picks up either True or False
if (val) {
if (val === "True") {
$("#expirationDates").show(); //show container with datepickers
$("#BeginDate").val(getFormattedDate(today()));
$("#EndDate").val(getFormattedDate(today().addMonths(6)));
}
else {
$("#expirationDates").hide();
$("#BeginDate").val("");
$("#EndDate").val(getFormattedDate(today()));
}
}
else {
alert("Please select an option of past or future expiration report.");
}
});
のは、私はテーブルを生成するためのボタンをクリックし、12/23/16と01/23/17の間の1ヶ月の範囲を選択し、ドロップダウンから真選んだと仮定しましょう。
そして、私はコンテナを隠し、datepickers(隠され、従って、ユーザによって制御することができない)でempty
とtoday
に日付値を再割り当てさせFalseにドロップダウン・オプションを切り替えます。
今度は、再びTrueに切り替えると選択が消え、6ヶ月の範囲に割り当てられます(理由は分かりますが、後で説明します)。
私の質問は:スイッチを押すたびにTrueオプションから最新の選択を保持するにはどうすればよいですか?
私の試みを通して挑戦
それは次のように動作した理由を私は正確に理解しています。私の考え方は、Trueオプションの日付ピッカーの選択肢を変数に格納することです。私は当初、6ヶ月の日付範囲であることを日付を割り当てる必要が
if (val === "True") {
$("#expirationDates").show();
$("#BeginDate").val(getFormattedDate(today()));
$("#EndDate").val(getFormattedDate(today().addMonths(6)));
var start = $("#BeginDate").val();
var end = $("#EndDate").val();
}
:しかし、ここで私は突然に実行してい課題です。これまでの変数は、日付を適切に格納します。しかし、私が切り替えるたびに、日付の値は6ヶ月の範囲に再割り当てされ、無限ループに変わります。
このような問題に対するより良いアプローチについては、私はかなり多くのことを感謝しています。
いいえ。偽のフラグでは、datepickersに6ヶ月の範囲が割り当てられ、これらの値は開始点と終了点の下に割り当てられます。フラグがtrueに設定されたので、datepickersは6ヶ月の範囲値である開始値と終了値に割り当てられます。 –