我期待在用戶爲DropDownList選擇一個值時強制提交,只要它不是「自定義」即可。如果是「自定義」,我不希望提交表單。相反,我想要顯示startingDate和endingDate。但是,除非選擇自定義,否則我不想顯示startingDate或endingDate。我認爲這必須用jQuery或JavaScript來完成。任何人都可以告訴我如何實現這一目標?當用戶爲DropDownList選擇一個值時強制提交,除非該值爲自定義
這裏是我在控制器通過起始日期代碼,結束日期和列表下拉到視圖:
List<SelectListItem> rangeList = new List<SelectListItem>();
rangeList.Add(new SelectListItem { Text = "Today", Value = "Today" });
rangeList.Add(new SelectListItem { Text = "Yesterday", Value = "Yesterday" });
rangeList.Add(new SelectListItem { Text = "Past 7 Days", Value = "Past 7 Days" });
rangeList.Add(new SelectListItem { Text = "Past 30 Days", Value = "Past 30 Days" });
rangeList.Add(new SelectListItem { Text = "Last Month", Value = "Last Month" });
rangeList.Add(new SelectListItem { Text = "Custom", Value = "Custom" });
ViewBag.rangeList = rangeList;
ViewBag.startingDate = startingDate;
ViewBag.endingDate = endingDate;
ViewBag.specifiedRange = specifiedRange;
編輯
我修改了代碼顯示嘗試添加腳本。以下是我現在在視圖中的代碼。它沒有做任何事情。
<script type="text/javascript">
$("#range").change(function()
{
if ($(this).val() == "Custom")
{
$("p.down").toggle();
}
else
{
$("form").submit();
}
});
</script>
@using (Html.BeginForm())
{
<p>
@Html.DropDownList("specifiedRange", new SelectList(
ViewBag.rangeList as System.Collections.IEnumerable,
"Text",
"Value",
new { @Id = "range" }))
</p>
<p class = "down">
Starting Date: @(Html.Telerik().DateTimePicker().Name("startingDate"))
Ending Date: @(Html.Telerik().DateTimePicker().Name("endingDate"))
<input type="submit" value="GO" />
</p>
}
屏幕閱讀器用戶自動提交表單就非常不友好。 – steveax 2012-04-13 20:22:01