1

我有这段代码,如果有一个空的,所有名为“inputix”的输入字段都有一个红色边框,我只想更改那些为空的:

html 部分http://pastebin.com/4kyv8dLD

for (i=0;i<required.length;i++) {
    var input = $('#'+required[i]);
    if ((input.attr('value') === "") || (input.val() === emptyerror)) {
        input.addClass("needsfilled");
    } else {
        input.removeClass("needsfilled");
    }
}

if (!/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/.test(email.val())) {
    email.addClass("needsfilled");
    email.val(emailerror);
}


if ($(":input").hasClass("needsfilled")) {
    i=0;
    $('.inputix').css('border','solid 1px red');
    for (i=0; i<5; i++){
        $('.inputix'+[i]).css('border','solid 1px red');
    }
    return true;
}

问题是只希望空的有红色边框......

4

1 回答 1

2

无需使用for循环,您可以使用start with选择器:

选择具有指定属性且其值正好以给定字符串开头的元素。

$('input[class^="inputix"]').css('border','solid 1px red')

作为替代方案,您可以使用each循环:

$('form').submit(function(){
    $('input').each(function(){
        if (this.value == '') {
           $(this).addClass('error')
        } else {
            $(this).removeClass('error')  
        }
    })

    if ($('input.error').length > 0) {
        return false
    }           
})

演示

于 2012-07-12T18:46:08.427 回答