2016-08-08 1 views
0

到着日がより大きい場合、JavaScriptを使用して1日追加するカレンダーの出発日を更新します。これは私のコードですが、到着日を変更すると、出発日は変わりません。到着日がより大きい場合は出発日を更新してください

function addDate() { 
 
\t \t \t date = new Date(); 
 
\t \t \t var month = date.getMonth() + 1; 
 
\t \t \t var day = date.getDate(); 
 
\t \t \t var year = date.getFullYear(); 
 

 
\t \t \t if (document.getElementById('startDate').value == '') { 
 
\t \t \t \t document.getElementById('startDate').value = month + '/' + day + '/' + year; 
 
\t \t \t } 
 
\t \t \t if (document.getElementById('endDate').value == '') { 
 
\t \t \t \t document.getElementById('endDate').value = month + '/' + (day + 1) + '/' + year; 
 
\t \t \t } 
 
\t \t }
<input type="text" id="startDate" style="background-color:#5c677b;height:25px;" name="checkin" placeholder="checkin"> 
 

 
<input type="text" id="endDate" style="background-color:#5c677b;height:25px;" name="checkout" placeholder="checkout">

答えて

0

、あなたがしたい:

デフォルトでは到着日と 出発日
  • 更新到着日を変更出発日として翌日として現在の日付を設定し
    • のみそれ以上の場合

    私の解決策はこれです。まず、イベントをキャッチするには、onchange="changedDate()"を入れます。その後、arrivalDate>departureDateをチェックし、真の場合はその日付を取得し、最後に出発日を次の日付に更新します。

    addDate(); 
     
    function addDate() { 
     
        date = new Date(); 
     
        var month = date.getMonth() + 1; 
     
        var day = date.getDate(); 
     
        var year = date.getFullYear(); 
     
    
     
        if (document.getElementById('startDate').value == '') { 
     
        document.getElementById('startDate').value = month + '/' + day + '/' + year; 
     
        } 
     
        if (document.getElementById('endDate').value == '') { 
     
        document.getElementById('endDate').value = month + '/' + (day + 1) + '/' + year; 
     
        } 
     
    } 
     
    function changedDate(){ 
     
        var arrivalDate = new Date(document.getElementById('startDate').value) ; 
     
        var departureDate = new Date(document.getElementById('endDate').value) ; 
     
        if(arrivalDate>departureDate){ 
     
        var arrDate = new Date(); 
     
        arrDate.setDate(arrivalDate.getDate()+1); 
     
        arrDate.setMonth(arrivalDate.getMonth()+1); 
     
        arrDate.setFullYear(arrivalDate.getFullYear()); 
     
        document.getElementById('endDate').value = arrDate.getMonth() + '/' + arrDate.getDate() + '/' + arrDate.getFullYear(); 
     
        } 
     
    }
    <input type="text" id="startDate" style="background-color:#5c677b;height:25px;" name="checkin" placeholder="checkin" onchange="changedDate()"> 
     
    <input type="text" id="endDate" style="background-color:#5c677b;height:25px;" name="checkout" placeholder="checkout">

  • +0

    これは大変ありがとうございます。 – magdy

    +0

    @あなたは大歓迎です。また、あなたの役に立つので、私の答えをupvoteすることを検討することがあります。 –

    +0

    私は他の日付に間違った日付を与える私はそれを変更すると、dd/mm/yyyyに日付形式を変更したいですか? 。 – magdy

    0

    If(document.getElementById('endDate').value < document.getElementById('startDate').value){ (document.getElementById('endDate').value= If(document.getElementById('startDate').value.addDay(1) }

    構文は非常に適切ではありませんが、それはあなたが欲しいものです。

    問題は、既に終了日を選択したときに更新するように指示していないことです。終了日が選択され、開始日が変更された場合は、2つを比較し、それに応じて調整する必要があります。私はその権利を得た場合

    +0

    はい私は、エンドdate.i iは開始日の変更、終了日が開始日よりおろし金になりますとき終了日を更新したいか、わかりません更新する語っていないのです1日であなたは私のポイントを持っていますか? – magdy

    +0

    いつ、どこでaddDate関数を呼び出していますか? – Thecor

    +0

    はいonload()でaddDate()を呼び出していますfucntion – magdy

    関連する問題