如何禁用输入类型为“”的特定日期;日期“;来自JavaScript

如何禁用输入类型为“”的特定日期;日期“;来自JavaScript,javascript,html,Javascript,Html,我在html页面中输入了type=“date”,我想通过JavaScript禁用特定的日期。我该怎么做 我尝试使用getElementById禁用它,但它禁用了完整的日期输入。您可以向输入类型=日期添加一个min或max属性。日期必须采用ISO格式(yyyy-mm-dd)。许多移动浏览器和当前版本的Chrome都支持这一点,尽管用户可以手动输入无效日期,而无需使用日期选择器 <input name="somedate" type="date" min="2017-11-25"> 然

我在html页面中输入了
type=“date”
,我想通过JavaScript禁用特定的日期。我该怎么做


我尝试使用
getElementById
禁用它,但它禁用了完整的日期输入。

您可以向输入类型=日期添加一个min或max属性。日期必须采用ISO格式(yyyy-mm-dd)。许多移动浏览器和当前版本的Chrome都支持这一点,尽管用户可以手动输入无效日期,而无需使用日期选择器

<input name="somedate" type="date" min="2017-11-25">
然而,我们还不能做的是,从我们的输入中删除几天。例如,我们不能仅仅通过标记来阻止选择周末或禁止周一。相反,我们需要做更多的工作,使用HTML5验证API和本机JavaScript日期对象

如果选择的日期是星期一,则显示错误的代码

    var date = document.querySelector('[type=date]');

function noMondays(e){

    var day = new Date( e.target.value ).getUTCDay();

    // Days in JS range from 0-6 where 0 is Sunday and 6 is Saturday

    if( day == 1 ){

        e.target.setCustomValidity('OH NOES! We hate Mondays! Please pick any day but Monday.');

    } else {

        e.target.setCustomValidity('');

    }

}

date.addEventListener('input',noMondays);

可以向输入类型=日期添加最小或最大属性。日期必须采用ISO格式(yyyy-mm-dd)。许多移动浏览器和当前版本的Chrome都支持这一点,尽管用户可以手动输入无效日期,而无需使用日期选择器

<input name="somedate" type="date" min="2017-11-25">
然而,我们还不能做的是,从我们的输入中删除几天。例如,我们不能仅仅通过标记来阻止选择周末或禁止周一。相反,我们需要做更多的工作,使用HTML5验证API和本机JavaScript日期对象

如果选择的日期是星期一,则显示错误的代码

    var date = document.querySelector('[type=date]');

function noMondays(e){

    var day = new Date( e.target.value ).getUTCDay();

    // Days in JS range from 0-6 where 0 is Sunday and 6 is Saturday

    if( day == 1 ){

        e.target.setCustomValidity('OH NOES! We hate Mondays! Please pick any day but Monday.');

    } else {

        e.target.setCustomValidity('');

    }

}

date.addEventListener('input',noMondays);

您可以设置日期属性的最大值/最小值,如下所示:

但是,这不允许您禁用特定日期。如果你真的想这样做,我会检查所选的日期是否允许发布表单

在JQuery中,您可以在提交时获得所选的日期值,如下所示:

 $('#submit').on('click', function(){
      var date = new Date($('#date-input').val());

      day = date.getDate();
      month = date.getMonth() + 1;
      year = date.getFullYear();

      //Check here if date, month and year combination is allowed
 });
在本例中,我们有一个id为“date input”的日期元素和一个id为“submit”的按钮


注意,您还应该检查服务器端是否允许日期。

您可以在日期属性上设置最大值/最小值,如下所示:

但是,这不允许您禁用特定日期。如果你真的想这样做,我会检查所选的日期是否允许发布表单

在JQuery中,您可以在提交时获得所选的日期值,如下所示:

 $('#submit').on('click', function(){
      var date = new Date($('#date-input').val());

      day = date.getDate();
      month = date.getMonth() + 1;
      year = date.getFullYear();

      //Check here if date, month and year combination is allowed
 });
在本例中,我们有一个id为“date input”的日期元素和一个id为“submit”的按钮


请注意,您还应检查服务器端是否允许该日期。

您的意思是要阻止用户选择特定日期?您要禁用特定日期或日期范围?您的意思是要阻止用户选择特定日期?您要禁用特定日期或日期范围?有没有办法突出显示任何特定日期?,不是整个输入,而是仅突出显示某些日期。使用jquery ui datepicker有没有方法突出显示任何特定日期?,不是整个输入,而是仅突出显示某些日期。使用jquery ui datepicker