2012-07-12 46 views
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_.-])[email protected](([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; 
} 

的问题是,只想要空的,以获得红色边框...

回答

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

+0

不明白,第一个for循环检查,如果任何字段为空 第二的for循环,运行所有不同的inputix类,inputix1,inputix2,inputix3,因为我改变了输入css的,它们是不同的 – Souza 2012-07-12 18:50:04

+0

@S ouza好吧,你可以使用'开始'选择器,尝试更新的答案。 – undefined 2012-07-12 18:52:54

+0

现在,这是有道理的!非常感谢你。但仍然是所有字段都是红色的问题,而不是空的问题 – Souza 2012-07-12 18:55:15