asp.net中的常规字段验证器和JQuery Datepicker

时间:2014-03-26 16:18:10

标签: jquery asp.net datepicker

我的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

验证未来日期

1 个答案:

答案 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");
}

如果您仍然收到错误,请告诉我。