【发布时间】:2017-10-13 07:51:32
【问题描述】:
现在,当在每一行中选择开始日期并单击确定时,将相应显示结束日期。所以每个表格行都必须手动点击一个按钮来显示结束日期。
我想知道是否有可能如果我只选择一个开始日期并单击确定,
不仅会显示第一行结束日期,还会根据间隔天数自动显示第 2、3... 等行的 start date 和 end date
PS:请注意,行数是动态的,来自数据库,总行数未知。
任何想法将不胜感激。谢谢!!
(function($, window, document, undefined){
$(".addSkip").click(function() {
// row instance to use `find()` for the other input classes
var $row = $(this).closest('tr');
var date = new Date($row.find(".start_date").val()+" 0:00:00"),
days = parseInt($row.find(".days").val(), 10);
console.log(date.getDate());
console.log(days);
if (!isNaN(date.getTime())) {
date.setDate(date.getDate() + days);
$row.find(".end_date").val(date.toInputFormat());
} else {
alert("Invalid Date");
}
});
Date.prototype.toInputFormat = function() {
var yyyy = this.getFullYear().toString();
var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
var dd = this.getDate().toString();
return yyyy + "-" + (mm[1]?mm:"0"+mm[0]) + "-" + (dd[1]?dd:"0"+dd[0]); // padding
};
})
(jQuery, this, document);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
<th>
start</th>
<th>end</th>
<th>interval</th>
<tr>
<td><input type="date" size="15" name="date[]" class="start_date" \>
<input type="button" size="10" value="ok" class="addSkip"></td>
<td><input type="text" size="15" name="nextdate[]" class="end_date" \> </td>
<td><input type="text" size="3" name="skip[]" class="days" value="10"> </td>
</tr>
<tr>
<td><input type="date" size="15" name="date[]" class="start_date" \>
<input type="button" size="10" value="ok" class="addSkip"></td>
<td><input type="text" size="15" name="nextdate[]" class="end_date" \> </td>
<td><input type="text" size="3" name="skip[]" class="days" value="10"> </td>
</tr>
<tr>
<td><input type="date" size="15" name="date[]" class="start_date" \>
<input type="button" size="10" value="ok" class="addSkip" ></td>
<td><input type="text" size="15" name="nextdate[]" class="end_date" \> </td>
<td><input type="text" size="3" name="skip[]" class="days" value="10">
</tr>
</table>
想要的结果
start end interval
13/10/17 20/10/17 7
20/10/17 23/10/17 3
23/10/17 30/10/17 7
…… 等等
【问题讨论】:
-
您希望所有行都显示相同的结束日期吗?还是所有 end 都必须显示相对 start 对应的值?
-
我已经用表格更新了问题,请看一下,谢谢
-
所以,您希望在第一个 start_date 中插入一个日期为 2017-01-01(例如),脚本详细说明相对 end_date 并将另一个 start_date 设置为 2017-01-02, 2017- 01-03 等详细说明每个 end_date,对吧?
-
没错!
标签: javascript jquery