【问题标题】:Make a CompareValidator validate conditionally使 CompareValidator 有条件地验证
【发布时间】:2016-10-12 23:53:12
【问题描述】:

我有一个复选框,其中有一个名为 onclick 的 javascript 函数,用于显示/隐藏 div,如下所示。在 div 中有一个带有 CompareValidator 的文本框,它将文本框中的文本验证为 Double。问题是当复选框被选中并显示 div 时,CV 会触发,并且默认情况下会出现错误消息,因为看起来 CV 正在验证一个不是双精度的空文本框。在复选框使 div 可见和/或仅当文本框中的文本不为空且不是空字符串时,是否有办法使 CV 生效?谢谢。

        <table id="tblLabTests" class="fullWidth dataEntryTableTop" runat="server" visible="false" clientidmode="Static">
            <tr id="trL_FBC" clientidmode="static">
                <td>
                    <asp:CheckBox ID="chkL_FBC" runat="server" clientidmode="static" />
                    <asp:Label AssociatedControlID="chkL_FBC" ID="lblL_FBC" runat="server" Text="FBC" />
                </td>
                <td>
                    <div id="divFBC" runat="server" clientidmode="static">
                        <table id="tblFBC" class="fullWidth noBorder" runat="server" clientidmode="static">
                            <tr>
                                <td>
                                    <asp:Label ID="lblPlateletCount" runat="server" Text="Platelet Count" />
                                </td>
                                <td>
                                    <asp:TextBox ID="txtPlateletCount" runat="server" MaxLength="4" CssClass="width50" />                                        
                                    <asp:Label ID="Label10" runat="server">*10<sup>9</sup>/L</asp:Label><br />
                                    <asp:CompareValidator ClientIDMode="Static" CssClass="cvRed" runat="server" id="CompareValidator1" ControlToValidate="txtPlateletCount" Type="Double" ErrorMessage="Must be a number" Display="Dynamic" Operator="DataTypeCheck" />
                                </td>
                            </tr>
                        </table>
                    </div>
                </td>
            </tr>
        </table>


        function fbcUpdate() {
            var checked = $('#chkL_FBC').is(':checked');
            if (checked) {
                $('#divFBC').css('display', '');
            }
            else {
                $('#divFBC').css('display', 'none');
            }
        }

【问题讨论】:

  • 你的意思是if($('#txtPlateletCount').val() !== ''){/* do your stuff here */}
  • @PHPglue 好吧,这看起来可行,所以在你的东西在这里部分,你提倡启用 CV 吗?我尝试启用和禁用 cv 但无济于事。请问语法是什么?谢谢

标签: javascript jquery css asp.net


【解决方案1】:

抱歉,我已经放弃了这个策略。后面的代码使用实体框架,所以我从后面的代码中添加了对实体的验证。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-13
    • 1970-01-01
    • 2021-05-25
    • 2013-08-12
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多