1

在我看来,我有一个扣环,每个日期都显示 astartdateenddate。每个日期选择器都有一个范围限制(我的意思是,StartDate不能大于EndDate)。

这是我的剃刀观点

<h2>Configure Sixweeks</h2>

@for (int i = 0; i < Model.Count; i++) {
<div>
    <span>@Model[i].Position</span>
    @Html.TextBoxFor(model => model[i].StartDate, new { id = "from" + i })
    @Html.TextBoxFor(model => model[i].EndDate, new { id = "to" + i })
</div>
}

这是大问题,我不知道指定最小值和最大值。例如,如果我在 STARTDATE 中选择 2 月 2 日,则 ENDDATE 中的最小值应该是 2 月 2 日。而这我还没有完成。

所以我从这个网站上使用了这个概念:http: //api.jquery.com/attribute-starts-with-selector/但它仍然不起作用,我在下面的 jquery 代码中缺少什么?

$("[id^='from']").datepicker({
    defaultDate: "+1w",
    numberOfMonths: 1,
    onClose: function(selectedDate)
    {
        $(this).next("[id^='to']").datepicker("option", "minDate", selectedDate);
    }
});

$("[id^='to']").datepicker({
    defaultDate: "+1w",
    numberOfMonths: 1,
    onClose: function (selectedDate) {
        $(this).prev("[id^='from']").datepicker("option", "maxDate", selectedDate);
    }
});
4

1 回答 1

1

如果它不是直接的兄弟姐妹,但仍然是兄弟姐妹,则可以使用nextAll()查找与选择器匹配的所有下一个兄弟姐妹,然后first()获取第一个,这将是最接近当前日期选择器的兄弟,如下所示:

$("[id^='from']").datepicker({
    defaultDate: "+1w",
    numberOfMonths: 1,
    onClose: function(selectedDate)
    {
        $(this).nextAll("[id^='to']")
               .first()
               .datepicker("option", "minDate", selectedDate);
    }
});

还有一个prevAll()相反的方向等等。

于 2013-02-19T00:27:03.223 回答