一个输入类,只修改空的

时间:2012-07-12 18:41:07

标签: javascript jquery if-statement for-loop

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

html part 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;
}

问题是只想让空的边框变成红色边框......

1 个答案:

答案 0 :(得分: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
    }           
})

DEMO