0
<asp:GridView ID="GridView1">
  <Columns>
     <asp:TemplateField>
       <ItemTemplate>
           <asp:DropDownList></asp:DropDownList> 
           <input type="tel" id="contract">
       </ItemTemplate>
     </asp:TemplateField>
     <asp:TemplateField>
       <ItemTemplate>
           <asp:Label><asp:Label>
           <asp:Label><asp:Label>
       </ItemTemplate>
     </asp:TemplateField>
     <asp:TemplateField>
       <ItemTemplate>
           <input type="tel" id="Hours">
       </ItemTemplate>
     </asp:TemplateField>
  </Columns>
</asp:GridView>

我正在尝试使用 JQuery 作为验证 GridView 中模板字段的快速方法。例如,如果我的 DropDownList 的 SelectedValue = RENT READY,则 Hours 输入不应为空。所以我想使用 JQuery 来计算所有时间,我可以缩小到一个值为 RENT READY 的选择,其对应的 Hours 输入 = 空白。我试过了:

$("#GridView1 select[value=RENT READY]").find("input[type=tel]").eq(1)

$("#GridView1 select[value=RENT READY]").next("input[type=tel]").next("input[type=tel]")

$("#GridView1 select[value=RENT READY]").next("input[type=tel value=''])

但总是返回未定义。选择片工作得很好。找到值为 RENT READY 的选择没有问题。这是第二部分,我尝试将其进一步缩小到仅输入相对于 2 个门向下且空白值无效的选择。

在此处输入图像描述

编辑:最终代码

$('#GridView1 select').filter(function () {
            return ($(this).val() == 'RENT READY');
        }).closest('tr').find('input[type=tel]').filter(function () {
            return ($(this).val() == "" && $(this).attr("id") == "Hours");
        }).length
4

2 回答 2

1

我认为这不是选择值为“RENT READY”的下拉列表的有效方法。

你应该像下面那样做,

$('#GridView1 select').filter(function () {
    return ($(this).val() == 'RENT READY');
}) 

tel找到最接近的tr并进行查找..或者您可以.next .next在选择父项上进行。

$('#GridView1 select').filter(function () {
    return ($(this).val() == 'RENT READY');
}).closest('tr').find('input[type=tel]')
于 2012-06-08T14:37:28.480 回答
0

您需要获取在选择中选择的选项。像这样:

$('#GridView1 select#GridViewStatus option[value="RENT READY"]:selected"').closest('input[type="tel"]')

如果未找到,最后添加.size()将为您提供 0,如果找到则为 >0。

于 2012-06-08T14:47:02.957 回答