如何控制管理几个数据选择器中的最小值和最大值?

时间:2013-02-18 23:36:15

标签: c# jquery asp.net-mvc jquery-ui razor

在我的剃刀视图中,我的每个日期都显示了startdateenddate。每个日期选择器都有范围限制(我的意思是,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);
    }
});

1 个答案:

答案 0 :(得分:1)

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

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

并且有prevAll()以相反的方式等。