2

I have a date input

<input type="date" id="a" name="a" required />

Now i want its value to be set by user but it has to be set only after two days of current day, how do i do that using javascript or jquery?

What i already tried is -

<form id="f">
    <input type="date" id="d" />
    <input type="submit" value="submit" />
</form>    

$("#f").submit( function(e){
    var date=new Date();
    date = date.getDate()+2;
    if($("#d").val()<date){
        alert("fail");
        e.preventDefault();
    }else{
        alert("Success");
    }
} );
Harshit Laddha
  • 2,044
  • 8
  • 34
  • 64

2 Answers2

3

You need to create a date object and compare it to another date object set 2 days ahead.

See Fiddle: http://jsfiddle.net/g6aFz/

JS:

$("#f").submit( function(e){
    var $date = $("#a"),
        date = new Date($date.val()),
        date2 = new Date()
    
    date2.setDate(date2.getDate() + 2)
    
    if(date < date2){
        alert("fail");
        e.preventDefault();
    }else{
        alert("Success");
    }
} );
Community
  • 1
  • 1
bottens
  • 3,834
  • 1
  • 13
  • 15
2

The date = date.getDate()+2; might now work as you intended. To increment dates in javascript, do as outlined in this post: Add days to JavaScript Date

var today = new Date();
var dayAfterTomorrow = new Date();
dayAfterTomorrow.setDate(today.getDate()+2);
Community
  • 1
  • 1
Tholle
  • 108,070
  • 19
  • 198
  • 189