<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