我有一个mvc视图页面,导致多个元素具有相同的名称。 我想在验证表单时排除其类型被隐藏的所有输入元素。
例如,我的页面结果显示以下输入:
<input name="[0].MPID" type="hidden" value="">
<input name="[1].MPID" type="hidden" value="">
....
<input id="MPID_0" name="[0].MPID" type="text" value="" class="valid">
<input id="MPID_1" name="[1].MPID" type="text" value="" class="valid">
....
现在当我在下面编写代码来循环所有MPID元素时,我不想考虑第一组隐藏类型的输入。
$("[name$='\\.MPID']").each(function () {
// this here refers to the found element
var $this = $(this);
...
....
})
为了适应我改变选择器如下所示,我在控制台中收到错误。请通过正确纠正第二个排除选择器来帮助我。
$("[name$='\\.MPID' input:not(type=hidden)]").each(function () {
....
})
答案 0 :(得分:0)
正如您所见,您的选择器不太对劲。试试这个:
$('input:visible[name$="\\.MPID"]').each(function () {
// ....
})
请注意,元素类型选择器首先出现在属性选择器之外。此外,您可以使用:visible
代替:not(:hidden)
或:not([type="hidden"])
。