4

我正在使用asp.net,我有一个gridview,在gridview 里面我有一个页脚模板。在页脚模板中。

  <FooterTemplate>
                        <asp:ImageButton ID="imgbtnAddxxxx" runat="server" CommandName="Insert" ImageUrl="/Style%20Library/Images/add.png" ToolTip="New Record" ValidationGroup="GridViewFooterRowGroup" />
                        </FooterTemplate>

<asp:TemplateField HeaderText="Needed-By">
                        <EditItemTemplate>
                          <asp:TextBox ID="txtNeededBy" runat="server" Text='<%#Eval("NeedBy") %>' BackColor="LightSkyBlue" ForeColor="Black" ReadOnly="true"/>
                          <asp:RequiredFieldValidator ID="reditNeededBy" runat="server" ControlToValidate="txtNeededBy" Text="*" Display="Dynamic" ValidationGroup="GridViewDataRowGroup" />
                        </EditItemTemplate>

                        <ItemTemplate>
                           <asp:Label ID="lblNeededBy" runat="server" Text='<%#Eval("NeedBy") %>'/>
                        </ItemTemplate>

                        <FooterTemplate>
                        <asp:TextBox ID="txtftrNeededBy" runat="server" onchange="abc();" />
                         <asp:RequiredFieldValidator ID="rfvNeededBy" runat="server" ControlToValidate="txtftrNeededBy" Text="*" Display="Dynamic" ValidationGroup="GridViewFooterRowGroup" />
                        </FooterTemplate>

                     </asp:TemplateField>

我有一个如下所示的 jquery 代码来显示日历拾取。

<script type="text/javascript">
    $(function () {
        BindEvents();
    });

    $(function () {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function () {
            BindEvents();
        });
    });

    function BindEvents() {

        var $ = jQuery.noConflict();

        $('input[id*="txtftrNeededBy"]').datepicker({
            dateFormat: 'dd-M-y', changeMonth: true, minDate: 0,
            onSelect: function () { },
            onClose: function (dateText) {
                var txt = $("#<%=hdnNeedByDate.ClientID%>");
                txt.val(dateText);
            }
        });


        $('input[id*="txtNeededBy"]').datepicker({
            dateFormat: 'dd-M-y', changeMonth: true, minDate: 0,
            onSelect: function () { },
            onClose: function (dateText) {
                var txt = $("#<%=hdnNeedByDate.ClientID%>");
                txt.val(dateText);
            }
        });

        $('input[id*="txtftrQty"]').autoNumeric({ aSep: '', vMax: '999999', vMin: '0', wEmpty: 'zero', mDec: null });
        $('input[id*="txtQty"]').autoNumeric({ aSep: '', vMax: '999999', vMin: '0', wEmpty: 'zero', mDec: null });
    } 
</script>

当日历返回并且用户按下添加按钮时,验证组会检查用户是否选择了日期..如果用户在里面输入日期并单击添加没有任何反应但是如果我删除 requirefieldvalidator 它可以工作......

带有 jquery datepicker 的 requiredfield 验证器有什么问题吗?如何解决这个问题。

4

2 回答 2

5

我自己也遇到了这个问题。我发现了这个错误报告(链接)

这里有两个解决方法。

为日期选择器的 onSelect 事件注册一个空处理程序

$(".myDatePickerClass").datepicker({onSelect: function() {}})

或者

将 EnableClientScript="false" 添加到您的验证器

<asp:RequiredFieldValidator runat="server" EnableClientScript="false"...
于 2013-09-26T17:53:43.313 回答
0

这对我有用。我希望它也能帮助你。

        $(function () {

        $("#<%= txtSendDate.ClientID %>").datepicker({
            onSelect: function (dateText, inst) { }
        });


    });
于 2014-03-05T00:29:25.257 回答