【问题标题】:How to disable previous dates(in the enddate field) based on the date the user selected on the startdate field? (using input type "date" & javascript)如何根据用户在 startdate 字段中选择的日期禁用以前的日期(在 enddate 字段中)? (使用输入类型“日期”和 javascript)
【发布时间】:2022-01-11 14:00:29
【问题描述】:

我有两个输入字段:

<input type="date" id="start">

<input type="date" id="end">

有没有一种方法可以根据用户在“开始”输入中选择的日期来禁用“结束”输入字段中的先前日期。

例如:如果用户在开始输入字段中选择“2022/01/11”,则应自动禁用结束输入字段中的所有先前日期(用户应仅允许选择 2022/01/11 或更大)。

所有这些都使用 javascript。

我尝试过的:

$(function(){
    var dtToday = new Date();
    
    var month = dtToday.getMonth() + 1;
    var day = dtToday.getDate();
    var year = dtToday.getFullYear();
    if(month < 10)
        month = '0' + month.toString();
    if(day < 10)
        day = '0' + day.toString();
    
    var minDate= year + '-' + month + '-' + day;
    
    $('#txtDate').attr('min', minDate);
});

仅适用于一个输入字段。

提前致谢。

【问题讨论】:

    标签: javascript html jquery


    【解决方案1】:

    您可以处理开始日期输入的“更改”事件,并使用开始日期输入的值更新结束日期输入的min 属性:

    $("#start").change(function(){
      $("#end").prop("min", $(this).val());
      $("#end").val(""); //clear end date input when start date changes
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <input type="date" id="start" />
    <input type="date" id="end" />

    【讨论】:

    • 谢谢@Tom,您的回答解决了这个问题,并且工作正常。
    猜你喜欢
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多