我有两个更改事件,用于检查输入的日期。如果日期超过比较日期,则发出警报消息。所有这些都在单击文本框后发生。
//This on change event works perfectly fine
$("td[date1] > input").on("change", function () {
var cur_td = $(this).closest("tr");
var startdate = $(this).val();
var enddate = cur_td.find("td[date2]").text();
var d1 = Date.parse(startdate);
var d2 = Date.parse(enddate);
if (d1 > d2) {
alert("The date exceeds End Date. Please check the date and re-enter it.");
}
});
// This on change event doesn't work...
$("td[date2] > input").on("change", function () {
var cur = $(this).closest("tr");
var str = $(this).val();
var end = cur.find("td[date3]").text(); // Problem here
alert(end); // Returning blank..
var t1 = Date.parse(str);
var t2 = Date.parse(end);
if (t1 > t2) {
alert("The date exceeds End Date. Please check the date and re-enter it.");
}
});
剃刀视图:
<td date1><input class="start" id=@item.ID type="text" actual="1" value='@(item.Date1 == null ? "" : Convert.ToDateTime(item.Date1).ToString("MM-dd-yyyy"))' readonly="readonly" /></td>
<td date2><input class="end" id=@item.ID type="text" actual="1" value='@(item.Date2== null ? "" : Convert.ToDateTime(item.Date2).ToString("MM-dd-yyyy"))' readonly="readonly" /></td>
<td date3>@Html.DisplayFor(x => item.Date3)</td>
问题
第一个on change事件工作得很好,但是第二个并没有做同样的事情。
var end = cur_td.find("td[date3]").text();
alert(end);
这将返回空白。我不明白如何找不到td
元素。它们都是比较不同日期的相同精确函数。