<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值的select,其相应的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=''])
但总是返回undefined。选择件工作得很好。找到值为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
答案 0 :(得分: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]')
答案 1 :(得分:0)
您需要获取在select中选择的选项。像这样:
$('#GridView1 select#GridViewStatus option[value="RENT READY"]:selected"').closest('input[type="tel"]')
在末尾添加.size()
,如果找不到,则会给0;如果找到,则为> 0。