【发布时间】:2018-10-22 18:26:35
【问题描述】:
我正在尝试比较从数据库中提取的两个日期。我在 ASP .NET mvc 中做这一切。
这是我的模型类:
public DateTime? Date1{ get; set; }
public DateTime? Date2 { get; set; }
控制器:
public ActionResult
{
Hello test = new Hello();
return View(test.getStuff());
}
观看次数:
@foreach (var item in Model)
{
<td id="date1"> @Html.EditorFor(x => item.Date1)</td>
<td id="date2">@Html.DisplayFor(x => item.Date2)</td>
}
<script type="text/javascript">
$(document).ready(function () {
$("td#date1").bind("change", function () {
var cur_td = $(this).parent("tr#home");
var date2 = cur_td.find("td#date2").text();
console.log(date2);
var date1 = cur_td.find("td#date1").text(); // I don't understand why this is null?
console.log(date1);
if (date1 > date2) {
alert("Outside of the Editor Box");
} else {
alert("Date ok");
}
});
});
HTML:
<input class="text-box single-line" data-val="true" data-val-date="The field date1 must be a date." id="item_date1" name="item.Date1" type="date" value="2017-03-31">
<input class="text-box single-line" data-val="true" data-val-date="The field date1 must be a date." id="item_date1" name="item.Date1" type="date" value="2017-04-20">
这是谷歌浏览器控制台吐出的内容: 控制台:
Date2 已显示,但 Date1 保持空白,因此 if 语句总是跳过第一个条件并直接进入 else 条件。我只想比较这两个日期,但我似乎无法获得 Date1 的日期值。有什么解决方法吗?
【问题讨论】:
-
请出示您的 html。
-
@AdrianoRepetti 我意识到,只有 date1 需要编辑。 .Editorfor 函数是否会导致这些问题?
-
你有一个 @foreach 循环,在它里面,你渲染你的 td 标签。您在 foreach 中使用 ID 的 date1 和 date2,这意味着对于每个循环,您将获得多个具有相同 ID 的 td 标签,这是一个坏主意,您将无法分辨出您真正想要的 td。
-
@PoulBak 上传了 HTML。
-
@AlfredoA。我看到了问题,对此有什么解决方法?我通过从数据库中查询来获取所有这些日期。我怎样才能把它从循环中拉出来,仍然有我需要的日期?
标签: javascript jquery html asp.net-mvc