提案された質問のいくつかを読みましたが、それらを実装する方法が正確にはわかりません。
- (jquery/js) - キーアップ時にフィールドからテキストを取得しますが、それ以上の入力には遅延があります
- ユーザーが入力をやめるまで .keyup() ハンドラを遅らせる方法は?
- ユーザーが入力を一時停止するまで遅延する onkeyup イベントをトリガーする方法は?
8 つのテキスト ボックスがあり、7 つは数値入力に使用され、8 番目は合計です。つまり、7.5 + 7.5 + 7.5 + 7.5 + 7.5 + 0.0 + 0.0 = 37.5
各テキストボックスの keyup() を監視し、すべての値を追加して合計を計算するように jQuery を動作させています。
ユーザーが「1」または「.1」、つまり「1.0」または「0.1」を入力すると #.# のようになるように、7 つのテキストボックスにユーザー入力をフォーマットすることにしました。
問題は、入力がフォーマットされる前に遅延を追加する必要があり、javascript や jquery でそれを行う方法がわからないことです。
<script type="text/javascript">
$(function () {
var content = $('input[id*="txtMondayHours"]').val();
$('input[id*="txtMondayHours"]').keyup(function () {
if ($('input[id*="txtMondayHours"]').val() != content) {
content = $('input[id*="txtMondayHours"]').val();
$('input[id*="txtMondayHours"]').val((new Number($('input[id*="txtMondayHours"]').val())).toFixed(2));
var hoursMon = new Number(content);
var hoursTue = new Number($('input[id*="txtTuesdayHours"]').val());
var hoursWed = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
}
});
var content2 = $('input[id*="txtTuesdayHours"]').val();
$('input[id*="txtTuesdayHours"]').keyup(function () {
if ($('input[id*="txtTuesdayHours"]').val() != content2) {
content2 = $('input[id*="txtTuesdayHours"]').val();
var hoursMon = new Number(content2);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
}
});
var content3 = $('input[id*="txtWednesdayHours"]').val();
$('input[id*="txtWednesdayHours"]').keyup(function () {
if ($('input[id*="txtWednesdayHours"]').val() != content3) {
content3 = $('input[id*="txtWednesdayHours"]').val();
var hoursMon = new Number(content3);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtTuesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
}
});
var content4 = $('input[id*="txtThursdayHours"]').val();
$('input[id*="txtThursdayHours"]').keyup(function () {
if ($('input[id*="txtThursdayHours"]').val() != content4) {
content4 = $('input[id*="txtThursdayHours"]').val();
var hoursMon = new Number(content4);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtTuesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
}
});
var content5 = $('input[id*="txtFridayHours"]').val();
$('input[id*="txtFridayHours"]').keyup(function () {
if ($('input[id*="txtFridayHours"]').val() != content5) {
content5 = $('input[id*="txtFridayHours"]').val();
var hoursMon = new Number(content5);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtTuesdayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
}
});
var content6 = $('input[id*="txtSaturdayHours"]').val();
$('input[id*="txtSaturdayHours"]').keyup(function () {
if ($('input[id*="txtSaturdayHours"]').val() != content6) {
content6 = $('input[id*="txtSaturdayHours"]').val();
var hoursMon = new Number(content6);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtTuesdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
}
});
var content7 = $('input[id*="txtSundayHours"]').val();
$('input[id*="txtSundayHours"]').keyup(function () {
if ($('input[id*="txtSundayHours"]').val() != content7) {
content7 = $('input[id*="txtSundayHours"]').val();
var hoursMon = new Number(content7);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtTuesdayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
}
});
});
</script>
理想的には、次の行を起動したいと思います。
$('input[id*="txtMondayHours"]').val((new Number($('input[id*="txtMondayHours"]').val())).toFixed(2));
100ms などの指定時間後
更新された作業コード:
<script type="text/javascript">
var delay = (function () {
var timer = 0;
return function (callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})();
$(function () {
var content = $('input[id*="txtMondayHours"]').val();
$('input[id*="txtMondayHours"]').keyup(function () {
if ($('input[id*="txtMondayHours"]').val() != content) {
content = $('input[id*="txtMondayHours"]').val();
var hoursMon = new Number(content);
var hoursTue = new Number($('input[id*="txtTuesdayHours"]').val());
var hoursWed = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
delay(function () {
$('input[id*="txtMondayHours"]').val((new Number($('input[id*="txtMondayHours"]').val())).toFixed(2));
}, 750);
}
});
var content2 = $('input[id*="txtTuesdayHours"]').val();
$('input[id*="txtTuesdayHours"]').keyup(function () {
if ($('input[id*="txtTuesdayHours"]').val() != content2) {
content2 = $('input[id*="txtTuesdayHours"]').val();
var hoursMon = new Number(content2);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
delay(function () {
$('input[id*="txtTuesdayHours"]').val((new Number($('input[id*="txtTuesdayHours"]').val())).toFixed(2));
}, 750);
}
});
var content3 = $('input[id*="txtWednesdayHours"]').val();
$('input[id*="txtWednesdayHours"]').keyup(function () {
if ($('input[id*="txtWednesdayHours"]').val() != content3) {
content3 = $('input[id*="txtWednesdayHours"]').val();
var hoursMon = new Number(content3);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtTuesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
delay(function () {
$('input[id*="txtWednesdayHours"]').val((new Number($('input[id*="txtWednesdayHours"]').val())).toFixed(2));
}, 750);
}
});
var content4 = $('input[id*="txtThursdayHours"]').val();
$('input[id*="txtThursdayHours"]').keyup(function () {
if ($('input[id*="txtThursdayHours"]').val() != content4) {
content4 = $('input[id*="txtThursdayHours"]').val();
var hoursMon = new Number(content4);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtTuesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
delay(function () {
$('input[id*="txtThursdayHours"]').val((new Number($('input[id*="txtThursdayHours"]').val())).toFixed(2));
}, 750);
}
});
var content5 = $('input[id*="txtFridayHours"]').val();
$('input[id*="txtFridayHours"]').keyup(function () {
if ($('input[id*="txtFridayHours"]').val() != content5) {
content5 = $('input[id*="txtFridayHours"]').val();
var hoursMon = new Number(content5);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtTuesdayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
delay(function () {
$('input[id*="txtFridayHours"]').val((new Number($('input[id*="txtFridayHours"]').val())).toFixed(2));
}, 750);
}
});
var content6 = $('input[id*="txtSaturdayHours"]').val();
$('input[id*="txtSaturdayHours"]').keyup(function () {
if ($('input[id*="txtSaturdayHours"]').val() != content6) {
content6 = $('input[id*="txtSaturdayHours"]').val();
var hoursMon = new Number(content6);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtTuesdayHours"]').val());
var hoursSun = new Number($('input[id*="txtSundayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
delay(function () {
$('input[id*="txtSaturdayHours"]').val((new Number($('input[id*="txtSaturdayHours"]').val())).toFixed(2));
}, 750);
}
});
var content7 = $('input[id*="txtSundayHours"]').val();
$('input[id*="txtSundayHours"]').keyup(function () {
if ($('input[id*="txtSundayHours"]').val() != content7) {
content7 = $('input[id*="txtSundayHours"]').val();
var hoursMon = new Number(content7);
var hoursTue = new Number($('input[id*="txtMondayHours"]').val());
var hoursWed = new Number($('input[id*="txtWednesdayHours"]').val());
var hoursThu = new Number($('input[id*="txtThursdayHours"]').val());
var hoursFri = new Number($('input[id*="txtFridayHours"]').val());
var hoursSat = new Number($('input[id*="txtSaturdayHours"]').val());
var hoursSun = new Number($('input[id*="txtTuesdayHours"]').val());
$('input[id*="txtTotalWorkingHours"]').val(parseFloat(hoursMon.toFixed(2)) + parseFloat(hoursTue.toFixed(2)) + parseFloat(hoursWed.toFixed(2)) + parseFloat(hoursThu.toFixed(2)) + parseFloat(hoursFri.toFixed(2)) + parseFloat(hoursSat.toFixed(2)) + parseFloat(hoursSun.toFixed(2)));
delay(function () {
$('input[id*="txtSundayHours"]').val((new Number($('input[id*="txtSundayHours"]').val())).toFixed(2));
}, 750);
}
});
});
</script>