我有两个输入是<form>的一部分。一旦更改其中之一(dpFin),我就试图获取输入的值。问题是,当我使用var endDt = document.getElementById("dpFin").value;获取值时,在事件内部我获取的不是新值,而是旧值。我如何获得新设置的值呢?



function compararFechas() {
  var startDt = document.getElementById("dpInicio").value;
  var endDt = document.getElementById("dpFin").value;

  console.log(startDt);
  console.log(endDt);
}

<div class="form-group col-md-6">
  <label>Inicio:</label>
  <div>
    <input type="text" id="dpInicio" name="dpInicio" class="form-control datepicker-here" data-language='es' data-timepicker="true" data-time-format='hh:ii aa' readonly />
  </div>
</div>
<div class="form-group col-md-6">
  <label>Fin:</label>
  <div>
    <input type="text" id="dpFin" name="dpFin" class="form-control datepicker-here" data-language='es' data-timepicker="true" data-time-format='hh:ii aa' readonly onblur="compararFechas()" />
  </div>
</div>

最佳答案

您通过它的外观使用了第三方日期选择器,因此您的blur事件永远不会被触发。如果您查看文档,则日期选择器上可能会有一个事件可以挂接到。

当您丢失blur上的focus时,input将触发。使用日期选择器时,当日期选择器弹出时您已经丢失了focus-因此是旧值。

关于javascript - onblur在值更改前触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58453735/

10-09 18:36
查看更多