Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-如何根据用户开始日期选择禁用未来日期?_Javascript_Jquery - Fatal编程技术网

JavaScript-如何根据用户开始日期选择禁用未来日期?

JavaScript-如何根据用户开始日期选择禁用未来日期?,javascript,jquery,Javascript,Jquery,我有以下代码: var today = new Date().toISOString().split('T')[0]; document.getElementsByName("StartDate")[0].setAttribute('min', today); $('#StartDate').change(function myfunction() { var endDate = new Date($('#StartDate').val()); $('#ReturnDate'

我有以下代码:

var today = new Date().toISOString().split('T')[0]; 
document.getElementsByName("StartDate")[0].setAttribute('min', today);

$('#StartDate').change(function myfunction() {
    var endDate = new Date($('#StartDate').val());
    $('#ReturnDate')[0].setAttribute('min', endDate);
})
我不想使用JQuery datepicker,而是使用html日期类型。
StartDate运行正常,但我想根据用户在StartDate中选择的内容禁用日期。例如,如果用户选择2015-08-01,则我希望在ReturnDate中禁用2015-08-02之前的所有日期。我尝试了这段代码,但仍然无法正常工作,有什么想法吗?

如果您使用的是moment.js,我没有测试它,这是您可以做的。html数据类型的兼容性不是很好,您可以使用编写代码进行回退
type=text

$('#StartDate').on('change', function() {

    var startDateStr = $(this).value() 
    var StartDateObj = new moment(startDateStr); 

    if($('#EndDate').length) {

        var endDateStr = $('#EndDate').value(); 
        var endDateObj = new moment(endDateStr);

    }

    // you should validate this value 1st, 1/2/15
    // can be read as jan 2 2015, feb 1 2015 depend on the country 

    if(endDateObj.isAfter(StartDateObj)) {

         return true; 

    } else {
         alert('error');
    }


}) 

您的代码有太多的问题,您正在混合使用Javascript和jQuery在jQuery对象上调用Javascript方法

希望您能仔细研究下面的代码,然后找出哪里出了问题以及原因

var today=new Date().toISOString().split('T')[0];
document.getElementById(“startDate”).setAttribute(“min”,今天);
$('#startDate')。在(“change”,function()上{
var endDate=新日期(this.value).toISOString().split('T')[0];
document.getElementById(“endDate”).setAttribute(“min”,endDate);
})


想试试moment.js吗?非常感谢。工作起来很有魅力!这里有一个遗漏,他需要
startdate
+一天的
enddate
字段
min
属性。