2013-07-24 82 views
4

我想使用jQuery来选择我的表单中具有类似名称的数据属性的所有输入。Jquery选择具有数据属性通用名称的所有元素

这是我的形式:

<form id = "myForm"> 
    <input name="name" data-valid-presence=true > 
    <input name="age" data-valid-biggerThan="18" > 
    <input name="email[0]" data-valid-email=true > 
    <input name="email[1]" data-valid-email=true > 
</form> 

和我的jQuery选择是:

var inputs = jQuery("#myForm").find("input[data-valid-email],[data-valid-length],[data-valid-presence], [data-valid-biggerThan]"); 

我正在寻找一种方式来选择所有在他们身上有data-valid-*,而无需输入像这样一个一个找到他们。

任何想法?

回答

1

您可以使用jQuery.filter:

var inputs = $('form').find('input').filter(function() { 
    var matched = false; 
    $.each(this.attributes, function(attr) { 
     if (matched) return; 
     matched = /^data-valid/.test(this.name); 
    }); 
    return matched; 
}); 
相关问题