イベント「変更」が呼び出された現在の行の特定の入力を更新するにはどうすればよいですか?
これが私のスクリプトです:
$('#absence-table').on('change', '.from input, .to input',function() {
var from = $('.from input').val();
var to = $('.to input').val();
if (from != "" && to != "")
{
d1 = getTimeStamp(from);
d2 = getTimeStamp(to);
if(d1 <= d2)
{
$('.result input').val(new Number(Math.round(d2 - d1)+1));
}
else
{
$('.result input').val(0);
}
}
});
HTML:
<table class="table table-bordered" id="absence-table">
<tr>
<th>Absence type</th>
<th>From</th>
<th>To</th>
<th>Days requested</th>
<th>Morning</th>
<th>Afternoon</th>
<th colspan="2">Comment</th>
</tr>
<tr class="main-abs-line">
<td>
<select name="absence-type" class="input-small">
<option value="t1">type1</option>
<option value="t2">type2</option>
</select>
</td>
<td class="from"><input type="text" class="input-small" /></td>
<td class="to"><input type="text" class="input-small" /></td>
<td class="result"><div class="text-center"><input type="text" class="input-xsmall" /></div></td>
<td class="morning"><div class="text-center"><input type="checkbox"></div></td>
<td class="afternoon"><div class="text-center"><input type="checkbox"></div></td>
<td colspan="2"><input type="text" /></td>
</tr>
// some tr added by the append() method
現在、最初の行の結果入力のみが更新され、現在の結果入力は最初からコピーされます。'.from input' と '.to input' の値が正しい (現在の行の値) ため、これは奇妙です。
通常は $(this) を使用して現在のオブジェクトを取得しますが、on() メソッドではそれを行う方法がわかりません。