日付を含む 2 つの入力フィールド間の日数の差を表示しようとしています。HTMLを変更することはほとんどできないので、Javascriptでこれを行う必要があります。HTMLはかなり醜いです。jQuery 1.3.2 しか使えません。
HTML:
<div id="longUnreadableUnidentifiableId">
<div class="dynamic">
<div class="row">
<span class="column">
<input id="horribleHorribleLongIdTxtFrom" type="text">11/02/2002</input>
</span>
<span class="colum">
<input id="horribleHorribleLongIdTxtUntil" type="text">16/12/2010</input>
</span>
<div class="diff"> [diff] </div>
</div>
</div>
<div id="longUnreadableUnidentifiableId2">
<div class="dynamic">
<div class="row">
<span class="column">
<input id="horribleHorribleLongIdTxtFrom" type="text">03/03/2003</input>
</span>
<span class="colum">
<input id="horribleHorribleLongIdTxtUntil" type="text">16/12/2010</input>
</span>
<div class="diff"> [diff] </div>
</div>
</div>
特定の行の日付のいずれかが変更されると、それらの違いが表示されます。日付の差分に moment.js を使用しています。
次の JavaScript は、関連する入力フィールドを見つけて、それらの違いを警告しようとします。しかし、2 番目の入力フィールド (var until) を見つけるのに苦労しています。
Javascript:
$('input[id*="txtFrom"]').live('change', function() {
var from = $(this);
var until = from.parent(".row").find('input[id*="txtUntil"]');
a = moment(from.val());
b = moment(until.val());
alert(b.diff(a, 'days'));
});
誰かがこの問題の解決策を持っていますか? おそらくもっとエレガントなものですか?