javascript jquery在两个输入被更改后触发事件

时间:2018-02-26 13:49:33

标签: javascript jquery html

我的页面中有两个输入,如果修改了这两个输入,我想发起一个事件。 在stackoverflow中,我找到了如何为单选按钮

执行此操作

How to fire an event after two different radio buttons are selected

但不是输入。 我的代码在这里:

        ...

        <tr>
            <td class="td-header">From</td>
            <td class="td_content"><input type="text" id="debutDate"
                onclick="changeTime('debutDate');" class="input_tag"  style="width:227px"
                name="debutDate" readonly="readonly"></td>
        </tr>
        <tr>
            <td class="td-header">To</td>
            <td class="td_content"><input type="text" id="fin_date"  style="width:227px"
                onclick="changeTime('fin_date');" readonly="readonly" class="input_tag" name="fin_date"></td>
        </tr>
        ....

如果修改了这两个字段,我想计算插入的两个日期之间的天数,然后将其设置在标签标签中。 我有计算天数的功能:

function calculerNbreJours() {
    var d1 = new Date($("#debutDate").datepicker("getDate"));       
    var d2 = new Date($("#fin_date").datepicker("getDate"));
    $("#nbreJours").val(nombreJoursEntreDeuxDates(d1, d2));
}

function nombreJoursEntreDeuxDates(d1, d2){
    var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
    var firstDate = new Date(d1);
    var secondDate = new Date(d2);
    var day = secondDate.getDay();
    var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)))+1;
    return diffDays;
}

简单地说,我想在两个输入发生变化后立即致电calculerNbreJours

1 个答案:

答案 0 :(得分:2)

这是支持N个控件的通用解决方案。

grep ... | numsum
$(".controls").change(function(){
$(this).attr("data-changed",true);
  if($(".controls").length == $(".controls[data-changed='true']").length) {
   //Do your work here.
   alert("All controls chnaged");
  }
});