我的asp格式中有一个JQuery Datepicker。
$(function () {
$("#datepicker").datepicker();
});
<tr>
<td>Join Date
</td>
<td>
<input type="text" id="datepicker" class="box" />
<asp:RequiredFieldValidator ID="rfvdatepicker" runat="server" ErrorMessage="Please Select a Join Date." ControlToValidate="datepicker" Enabled="false" Display="Dynamic"></asp:RequiredFieldValidator>
</td>
</tr>
我收到此错误 “无法找到'rfvdatepicker'的'ControlToValidate'属性引用的控件ID'datepicker'。”
请帮我验证如何使用RegularFieldValidator验证JQUERY日期选择器 还使用RegularExpressionValidator
验证未来日期答案 0 :(得分:0)
您收到错误,因为控件没有“服务器”ID,这意味着它只存在于客户端/浏览器端。您必须通过强制控件在服务器上“运行”来分配“服务器”ID,因此您必须添加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#Code-Behind:
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");
}
如果您仍然收到错误,请告诉我。