テーブルでは、スキップ日の列の場合、最後の行の既定値は常に数値ではない「last」という語になります。さて、結果の日付は "NaN/NaN/NaN"と表示されます。これはNilのようなsthで置き換えることができます。NaN/NaN/NaNを取り除く方法
多くのありがとうございます。ここで
$('input.date, input.day').on('change', function() {
var $row = $(this).closest('tr');
var start = $row.find('.date').val();
if (start) {
var set = new Date(start);
set.setDate(set.getDate() + Number($row.find(".day").val()));
$row.find(".result").val([set.getMonth() + 1, set.getDate(), set.getFullYear()].join('/'));
var dt = set.getFullYear() + "-" + ("0" + (set.getMonth() + 1)).slice(-2) + "-" + ("0" + set.getDate()).slice(-2);
$row.next('tr').find('.date').attr('value', dt).trigger('change');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table id="one">
<th>Date</th>
<th>Skip days</th>
<th>Result</th>
<tbody>
<tr>
<td><input type="date" class="date"></td>
<td><input type="text" value="10" class="day"> </td>
<td><input type="text" class="result"> </td>
</tr>
<tr>
<td><input type="date" class="date"></td>
<td><input type="text" value="15" class="day"> </td>
<td><input type="text" class="result"> </td>
</tr>
<tr>
<td><input type="date" class="date"></td>
<td><input type="text" value="last" class="day"> </td>
<td><input type="text" class="result"> </td>
</tr>
</tbody>
</table>
'day'の入力を' text'から 'number'に変更してみませんか?数字入力だけが必要なので意味があります。これにより 'NAN'も削除されます – NewToJS
スキップ日の最後の行がデフォルト値になります。それは数字ではありません – epiphany
ここに例がありますhttps://jsfiddle.net/1ayn5tng/あなたはおそらく私の例はあなたが望むものではないので、最後のデフォルト値を持つだろう。 – NewToJS