jQuery を使用してページ要素を変更していますが、コードは (正常に) 実行されているように見えますが、ページは実際にはすぐには更新されません。Chrome ではすべてが安定していますが、IE9 はおかしくなっています。
JavaScript:
$(document).ready(function() {
$('body').on('change', '.Hours', function () {
var hoursElement = this;
this.value = Math.ceil(this.value * 4) / 4;
$.post("/Log/UpdateWorkItemHours", {
//valid arguments
}, function (hours) {
hoursElement.value = hours;
updateSum();
});
});
});
function updateSum() {
var sum = 0;
$('.Hours').each(function () {
sum += parseFloat($(this).val());
});
$('#sum').text("Total Hours: " + sum);
alert(sum);
}
HTML:
<input type="text" class="numeric Hours" value="4" />
<input type="text" class="numeric Hours" value="4" />
<input type="text" class="numeric Hours" value="21" />
<span class="numeric" id="sum">Total Hours: 0</span>
#sum の内容を変更する必要がある後 (コード内) にアラートが発生し、正しい数値が表示されますが、ページをランダムにクリックするか、タブを使用してフォーカスを数回変更するまで、ページは更新されません。また、アラートはデバッグ専用です。これは、そこに追加する前に発生していました。
コードの順序: 1. 合計を計算する 2. ページを更新する 3. アラート ポップアップを作成する
実行の順序: 1. 合計を計算する 2. アラート ポップアップを作成する 3. ユーザーがランダムにクリックするまで待つ 4. ページを更新する
何か案は?
編集: HTML と関数を呼び出すイベントを追加しました。