0

我该如何改进下一个功能?

function treatFormLinks () {
    if (!$('#One input').valid() ) {
        $('#LinkOne').addClass('hasErrors');    
    }
    if (!$('#Two input').valid() ) {
        $('#LinkTwo').addClass('hasErrors');    
    }
    if (!$('#Three input').valid() ) {
        $('#LinkThree').addClass('hasErrors');  
    }
};

$("#Submit").click(function () {
    treatFormLinks();
});

例如,如果我有一百个 ( #One, #Two.etc) 容器,那么为每个案例创建条件将是愚蠢的。那么我怎样才能使它不那么“依赖于 id 选择器”。

谢谢!

4

2 回答 2

1

您可以尝试使用eachtoggleClass方法。

function treatFormLinks () {
   $('#One, #Two, #Three').each(function(){
      $('#Link'+this.id).toggleClass('hasErrors', !$('input', this).valid())
   })
};
于 2012-11-08T13:58:02.963 回答
0

将输入和链接放在 jQuery 对象中,以便相关元素具有相同的索引。然后:

$inputs.each(function ( i ) {
    $links.eq( i ).toggleClass( 'hasErrors', $( this ).valid() );
});
于 2012-11-08T14:05:28.433 回答