如何在asp:CustomValidator javascript函数中获取父级

How can I get the parent in the asp:CustomValidator javascript function

本文关键字:函数 获取 javascript CustomValidator asp      更新时间:2023-09-26

如何在asp:CustomValidator javascript函数中获取父项,以便使用它来检查相关复选框是否已选中?

示例:

我有以下代码:

        <tr>   
            <th class="graytext r">Add Reps to Team:</th>
            <td>           
             <asp:GridView ID="grid" runat="server" AutoGenerateColumns="False" DataKeyNames="EmployeeID"
                    DataSourceID="dsEmployees" EnableViewState="false"
                    GridLines="None" CssClass="clGridDirectory">
                    <Columns>
                      <asp:TemplateField >
                        <ItemTemplate>
                          <asp:CheckBox runat="server" ID="employee_name" CssClass="employee_name" Text='<%# Eval("fullname") %>'/> 
                          <asp:HiddenField runat="server" ID="employeeidToRep" Value='<%# Eval("employeeid") %>'/>
                          <asp:TextBox runat="server" ID="repID" Text='<%# Eval("rep_id") %>'  />
                            <asp:CustomValidator id="CustomValidator2" runat="server" 
                              ControlToValidate = "repID"
                              ErrorMessage = ""
                              ClientValidationFunction="test" >
                            </asp:CustomValidator>
                        </ItemTemplate>
                      </asp:TemplateField>
                    </Columns>
                  </asp:GridView>       
               <asp:SqlDataSource ID="dsEmployees" runat="server" ConnectionString="<%$ ConnectionStrings:TestConnectionString %>"
                    SelectCommand="app_staff_without_team_select" SelectCommandType="StoredProcedure">
              </asp:SqlDataSource>        
            </td>
        </tr>

Jquery代码:

function test(oSrc, args) {
    var $tb = $('input[id$=employee_name]');
    // only validate if an <asp:Checkbox> called chkOtherCheckbox is ticked
    alert(args.Value.toString())
    if ($('input:checkbox[id$=chkOtherCheckbox]').is(':checked'))
        alert('checked')
    else
        alert('no checked')
}

如何在测试函数中获取父项,以便使用它检查相关复选框是否已选中?

您可以使用此代码来获取最近复选框的状态。

function test(oSrc, args) {    
   var nearestCheckBox= $(oSrc).parent().find('input:checkbox:first');
            var state=nearestCheckBox.attr('checked');//use this variable
}