2017-06-08 7 views
6

Im xdsoft datetimepickerを使用しているため、ユーザーは期限を選択できます。次の3日間のうちの1つを選択すると、アラートを表示したいと思います。ユーザーが次の3日以内に日付を選択した場合に警告を表示

当初私はminDateを設定していたので、これらの日は選択できませんでしたが、これらの日を選択してアラートボックスが表示されるようにしたいと思っていました。

このオプションが既に存在する場合は、ドキュメントで見つからないかどうかわかりません。

これは、私はあなたができれば私も、みんなありがとうa jsfiddle

を設定している

HTML

<h3>Deadline:</h3> 
<input type="text" id="datetimepicker"/> 

jqueryの

$('#datetimepicker').datetimepicker({ 
    timepicker:false, 
    format:'d/m/Y', 
    formatDate:'Y/m/d', 
    minDate:'+1970/01/04', 
}); 

IT-行ってきた方法です右の道で私を助けてください、それは大いに感謝されるでしょう

+2

も利用でき、 'onChangeDateTime'と呼ばれるオプションがあるが、プラグインが少しバギーであること...それはあなたがそれを達成することができますどのように他わからない。..変化に警戒を呼び出し続けるようです。.. ** [ここに問題がある](https://github.com/xdan/datetimepicker/issues/232)** ** **は修正されていない**を報告した。 –

+1

onChangeDateTimeやカスタムonChangeフックを使用する場合は、フィールドが無期限に更新されているかのように動作します。おそらくプラグインによって引き起こされます。多分@GuruprasadRaoが言っているのと同じことでしょう。もし可能であれば、jQuery UIのdatepickerをお勧めしたいと思います。それはとてもうまくいく。 https://jqueryui.com/datepicker/ – hack3rfx

+0

私の答えが更新されました。今すぐ動作します – hasan

答えて

0

Date.prototype.addDays = function(days) { 
 
    var dat = new Date(this.valueOf()); 
 
    dat.setDate(dat.getDate() + days); 
 
    return dat; 
 
} 
 

 
$("#datetimepicker").on("change", function(){ 
 
    var date= new Date().addDays(3); 
 
    var selected = new Date($(this).val()); 
 
    var current = new Date(); 
 
    if(selected > current && selected < date) 
 
    { 
 
     // your code here 
 
     alert("success"); 
 
     
 

 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<h3>Deadline:</h3> 
 
<input type="date" id="datetimepicker"/>

+0

ありがとう、これは動作しますが、xdsoftプラグインを使用しているのでロックされています( –

+0

)また、jquery – hasan

2

解決のために、このフィドルを確認してください。私はハードコードされた日付を使用していますが、あなたはそれに応じてフォーマットすることができます。使用できるonSelectDate:function(ct){.....があります。

$('#datetimepicker').datetimepicker({ 
    timepicker:false, 
    format:'d/m/Y', 
    formatDate:'Y/m/d', 
    minDate:'+1970/01/00', 
    onSelectDate:function(ct){ 

    var dateFrom = "06/08/2017"; 
    var dateTo = "06/11/2017"; 
    var dateCheck = "06/09/2017"; 

    var d1 = dateFrom.split("/"); 
    var d2 = dateTo.split("/"); 
    var c = dateCheck.split("/"); 

    var from = new Date(d1[2], parseInt(d1[1])-1, d1[0]); // -1 because months are from 0 to 11 
    var to = new Date(d2[2], parseInt(d2[1])-1, d2[0]); 
    var check = new Date(c[2], parseInt(c[1])-1, c[0]); 

    alert(check > from && check < to); 
    }, 
}); 

https://jsfiddle.net/oqw90cbu/5/

+0

で日付値を取得してこの回答を使用することもできますか? – hasan

+0

var dateFrom = "06/08/2017" – hasan

+0

私はあなたのjsfiddleを使用しましたが、xdsoftにはonSelectDate関数があります。あなたも同様のことができます。http://xdsoft.net/jqplugins/datetimepicker/で完全なオプションリストを読んでください。 – tech2017

関連する問題