0

jquery のベーススタンス検証を使用しており、開始日が終了日よりも後であることを確認する必要があります。この機能が存在するかどうか、これを行うためのルールを追加できるかどうか、またはカスタム チェックを追加する必要があるかどうかを誰かが知っているかどうか疑問に思っています。フォームが有効な場合に別の関数に転送するコードで機能する例を見つけるのに苦労しています。(下に貼り付けました)

$("#hotels").validate({
    rules: {
        checkinDate: {
            date: true
        },
        checkoutDate: {
            date: true
        }
    }
});


$("#hotels input.submit").click(function() {
  var isValid = $("#hotels").valid();
  if (isValid == true) {
      } else {
          hComp();
          return false;
      }
  } else {
      return false;
  }
});

これは別の例で見ましたが、どのように使用できるかわかりません。

var startDate = new Date($('#startDate').val());
var endDate = new Date($('#endDate').val());

if (startDate < endDate){
// Do something
}

ご協力いただきありがとうございます。

4

2 に答える 2

1

その例は、まさにあなたが必要としているもののように見えます。こちらをご覧ください。

その jquery の例を借りて、次の HTML があるとします。

  <input id="startDate" value="Jan 12, 2009" />
  <input id="endDate" value="Jan 12, 2010" />

次に、この JavaScript コードは「開始日が終了日より前です!」というアラートを表示する必要があります。(値が変更されていないと仮定します):

var startDate = new Date($('#startDate').val());
var endDate = new Date($('#endDate').val());

if (startDate < endDate){
    alert("Start date is before end date!");
}
于 2010-01-12T21:18:29.590 に答える
0

検証の前にこの問題を解決することになりましたが、これはおそらくはるかに良いアイデアです。jquery ui datepicker を使用したソリューションを次に示します。その後、同じロジックを使用して、最終的な検証チェックを行うことができます。

$('input').filter('.datepicker').datepicker({

beforeShow: customRange、showOn: 'both'、buttonImage: contextPath + '/assets/images/icon-calendar.gif'、buttonImageOnly: true、buttonText: 'Show Date Picker' });

function customRange(a) {
var b = new Date();
var c = new Date(b.getFullYear(), b.getMonth(), b.getDate());
if (a.id == 'checkoutDate') {
if ($('#checkinDate').datepicker('getDate') != null) {
c = $('#checkinDate').datepicker('getDate');
}
}
return {
minDate: c
}
}

于 2010-01-29T21:09:14.993 に答える