【问题标题】:Enable button after all daterangepickers are selected选择所有日期范围选择器后启用按钮
【发布时间】:2020-11-17 10:29:11
【问题描述】:

我有 2 个single date daterangepickers。我有一个禁用的按钮。我只想在两者都按日期填充后启用它。如果不是,则必须禁用它。

这是我的代码:

let arr = ['one', 'two'];

arr.forEach(iv=>{
    $(`#${iv}.input_value`).daterangepicker({
        singleDatePicker: true,
        showDropdowns: true,
        autoUpdateInput: false,
    autoApply: true,
    }, function(the_date) {
        $(`#${iv}.input_value`).val(the_date.format('MMM DD, YYYY'));
    $('#submit_data').removeAttr('disabled');
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />

<input type='text' id='one' class='input_value' autocomplete='off' />
<input type='text' id='two' class='input_value' autocomplete='off' />
<button id='submit_data' type='submit' disabled>Submit</button>

现在,它在填充日期字段之一后立即启用。无论如何我可以启用仅填充两个字段的按钮吗?

【问题讨论】:

    标签: javascript jquery ecmascript-6 daterangepicker bootstrap-daterangepicker


    【解决方案1】:

    添加一个对象来存储日期,检查是否有两个日期

    let arr = ['one', 'two'];
    
    let dates = {};
    
    arr.forEach(iv=>{
        $(`#${iv}.input_value`).daterangepicker({
            singleDatePicker: true,
            showDropdowns: true,
            autoUpdateInput: false,
        autoApply: true,
        }, function(the_date) {
            $(`#${iv}.input_value`).val(the_date.format('MMM DD, YYYY'));
            dates[iv] = the_date;
            if (Object.keys(dates).length > 1) {
              $('#submit_data').removeAttr('disabled');
            }
        });
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />
    
    <input type='text' id='one' class='input_value' autocomplete='off' />
    <input type='text' id='two' class='input_value' autocomplete='off' />
    <button id='submit_data' type='submit' disabled>Submit</button>

    或者你可以检查两个输入

    if ($('#one').val() && $('#two').val()) {
      $('#submit_data').removeAttr('disabled');
    }
    

    【讨论】:

    • 我会在 if 语句中添加一个 else 来添加 disabled 属性;这样如果一个被清除提交再次禁用。 IE; if ($('#one').val() &amp;&amp; $('#two').val()) { $('#submit_data').removeAttr('disabled'); } else { $('#submit_data').attr('disabled'); }
    猜你喜欢
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    相关资源
    最近更新 更多