私はこのコードjsFiddleを持っています。私が達成しようとしていることは次のとおりです。ユーザーがダイアログ内の「OK」ボタンをクリックすると、「field1」の日付が「field2」よりも後かどうか、つまり現在の期間が前の期間よりも後かどうかをコードで計算する必要があります (そうあるべきです)。その場合は、アクションを続行し、テキスト ボックスにデータを入力してダイアログを閉じます。そうでない場合はいつでも、選択が無効であることをユーザーに警告したいと思います (Previous は Current の後に来ることはできません)。日付の計算に問題はありません (プラグインの date.js を使用すると十分に簡単になります)。この条件をどこに含めるかを判断しようとすると問題が発生します。コードを自由に変更して、結果をここに投稿してください。ありがとう。
ダイアログを閉じる直前にコードを実行する必要があると感じていますが、そのための適切な条件を取得できません。たとえば、次のようになります。
//code up to here handles 'if's and 'else's
var currentPeriod = $("input#field1").val()
var previousPeriod = $("input#field2").val()
d1 = Date.parse(currentPeriod);
d2 = Date.parse(previousPeriod);
if((Date.compare(d1,d2))=='1')
{
$(this).dialog("close");
}
else
{
alert("Invalid date range");
}