JavaScript 将单击按钮更改为自动

标签 javascript

我有这个脚本

<script>
        function calculaDiferenca(data_inicio, data_fim) {
          var date1 = new Date(data_inicio);
          var date2 = new Date(data_fim);
          var timeDiff = Math.abs(date2.getTime() - date1.getTime());
          var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
          alert(diffDays + ' dias');
      }

      (function() {
        
          var calcBtn = document.getElementById('calcular');
          
          calcBtn.addEventListener('click', function(){
            
              var data_inicio = document.getElementById('data_inicio').value;
              var data_fim = document.getElementById('data_fim').value;
              
              calculaDiferenca(data_inicio, data_fim);
          });

})();

    </script>  

我可以更改而不是点击按钮来计算日期1和日期2的填充时间吗?

 var calcBtn = document.getElementById('calcular');

最佳答案

@Khalil 的回答很好。我只是想添加一些东西以使该过程按顺序进行。

禁用 date2 字段。如:

<input type="date" id="data_fim" disabled/>

然后使其依赖于 date1。

let first = document.getElementById('data_inicio');
let last  = document.getElementById('data_fim');

first.addEventListener('change', (e) => {
  last.disabled = false
  calculaDiferenca(e.target.value, last.value)
})

last.addEventListener('change', (e) => {
  calculaDiferenca(first.value, e.target.value)
})

关于JavaScript 将单击按钮更改为自动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70485633/

相关文章:

javascript - 基于 Angular 2 中按键的验证

javascript - 将字符串编码为 ISO-8859-1

javascript - 主脚本中的 Vuejs 模板限制

javascript - 用行分隔符替换文本区域中的 <br/> (Javascript)

javascript - Highchart 中 X 轴排序错误

javascript - 如何摆脱对象的引用?

javascript - 将页面的多个元素存储到 JSON 对象

javascript - 使用 Javascript 搜索数组中的项目

javascript - 使用 JavaScript 按 "Delete"键?

javascript - 一般来说,reduce 比 filter + map 快吗?