【问题标题】:Validate TextBoxes By CustomValidators in Gridview jquery通过 Gridview jquery 中的 CustomValidators 验证文本框
【发布时间】:2016-08-19 19:33:07
【问题描述】:

我有一个 Gridview,有两个 ItemTemplate,一个用于 TextBox,另一个用于 CustomValidator,我在此网格外有一个按钮

当我单击按钮时,我只想通过网格中的 CustomValidators 验证文本框

我只想捕捉在 CustomValidator 的同一行中找到的文本框

在这个函数中

function ValidateModuleList(source, args) {

}

我尝试了类似的东西

function ValidateModuleList(source, args) {
    var row = $(this).parent('td').parent('tr');
    var textbox = row.find('textbox1') ;
}

但它不起作用。

验证器:

<ItemTemplate>
     <asp:CustomValidator runat="server" ID="cvmodulelist" ClientValidationFunction="ValidateModuleList" CssClass="CustomValid" ErrorMessage="*" ValidationGroup="vg_Save_Req_TP_Settings">*
    </asp:CustomValidator> 
</ItemTemplate> 

【问题讨论】:

  • 怎么调用函数 ValidateModuleList ?
  • *:CustomValidator>
  • 您的 javascript 方法中的“textbox1”是什么?

标签: c# javascript jquery asp.net


【解决方案1】:

在 CustomValidator 中设置 controlToValidate = "TextBox1"。模板可能如下所示:

<asp:TemplateField >
        <ItemTemplate>
            <asp:TextBox ID="TextBox1" runat="server" CausesValidation="true" >
            </asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
<asp:TemplateField >
    <ItemTemplate>
        <asp:CustomValidator runat="server" ID="cvmodulelist" ClientValidationFunction="ValidateModuleList" 
                            CssClass="CustomValid" ErrorMessage="*" 
                            ControlToValidate="TextBox1" 
                            ValidationGroup="vg_Save_Req_TP_Settings">*
        </asp:CustomValidator> 
    </ItemTemplate> 
</asp:TemplateField>

在脚本中找到最接近的源'tr'。通过部分名称查找文本框。请记住,服务器会将文本框呈现为 &lt;input name="GridView1$ctl03$TextBox1" type="text" id="GridView1_TextBox1_1" /&gt; 之类的东西。这是您可以用于测试的脚本:

<script type="text/javascript">
    function ValidateModuleList(source, args) {
        var textbox = $(source).closest('tr').find('input[name*="TextBox1"]');
        alert(textbox.val());
    }
</script>

别忘了在页面顶部添加对 jquery 的引用:

<head runat="server">
    <script src="Scripts/jquery-1.8.2.js"></script>  

希望这将帮助您开始!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    相关资源
    最近更新 更多