在元素内选择特定元素并显示文本

时间:2018-12-14 18:50:17

标签: javascript jquery html

我有两个更改事件,用于检查输入的日期。如果日期超过比较日期,则发出警报消息。所有这些都在单击文本框后发生。

 //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元素。它们都是比较不同日期的相同精确函数。

0 个答案:

没有答案