你所得到的錯誤,因爲該控件不具有「切斷」的ID,這意味着它只能存在於客戶端上將來的日期,以驗證JQUERY日期選擇器/瀏覽器端。您必須通過強制控件在服務器上「運行」來分配「服務器」標識,因此您必須添加由RobH在註釋中指出的runat="server"
。
下面是你如何能做到這一點+正則表達式的日期範圍驗證的例子:
的JavaScript:
function pageLoad(sender, args)
{
$('#myDatePicker').datetimepicker({
pickTime: false,
pickDate: true,
autoclose: true
});
}
ASPX:
<div class="form-group">
<b>Join Date</b>
<div class='input-group date' id='myDatePicker'>
<asp:TextBox runat="server" ID="myJoinDatePicker" CssClass="form-control"></asp:TextBox>
<span class="input-group-addon"><span class="glyphicon glyphicon-clock"></span></span>
</div>
</div>
<asp:RequiredFieldValidator ID="rfvdatepicker" runat="server"
ErrorMessage="Please Select a Join Date." ControlToValidate="myJoinDatePicker"
Enabled="false" Display="Dynamic">
</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="regJoinDate" Display="Dynamic"
ValidationExpression="^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|21)\d\d$"
runat="server" ControlToValidate="myJoinDatePicker">
</asp:RegularExpressionValidator>
<asp:RangeValidator ID="rngvJoinDate" runat="server"
ControlToValidate="myJoinDatePicker"
Type="Date" Display="Dynamic" />
C#代碼 - 背後:
protected void Page_Load(object sender, EventArgs e)
{
// set your min join date here
rngvJoinDate.MinimumValue = DateTime.MinValue.ToString("dd/MM/yyyy");
// set your max join date here
rngvJoinDate.MaximumValue = DateTime.Today.ToString("dd/MM/yyyy");
}
請讓我知道,如果你仍然得到錯誤。
您需要使用'runat = server'將輸入更改爲一個asp.net控件。請記住,id會被運行時所破壞,因此請通過jQuery類而不是id來選擇它。 – RobH