Jquery排除具有多个选择器的类型

时间:2015-10-08 16:07:14

标签: jquery asp.net-mvc-4 jquery-ui

我有一个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 () {
....
})

1 个答案:

答案 0 :(得分:0)

正如您所见,您的选择器不太对劲。试试这个:

$('input:visible[name$="\\.MPID"]').each(function () {
    // ....
})

请注意,元素类型选择器首先出现在属性选择器之外。此外,您可以使用:visible代替:not(:hidden):not([type="hidden"])