2012-08-30 29 views
0

我想先说我是jQuery的新手,但不是一般的编程。这让我很难过,我无法在任何地方找到答案。jQuery验证,更改单独标签的颜色

这里就是我想要做的事:

我有一个表格,并在这个例子中我只是用我的两个主要的要求。我试图输入零件名称和零件号码。当用户没有输入其中的一个时,我想更改输入框旁边的标签颜色,同时禁用验证的消息部分。例如,

因此,例如。当用户没有输入部件号,我想改变这一点:

<label for="part_name">Part Name</label> 

为了这样的事情:

<label for="part_name" style="color: #fa0008;">Part Name</label> 


这里是我到目前为止的代码。

HTML

<div class='type_left'><label for="part_name">Part Name</label></div> 
<div class='type_left'><input type="text" id="part_name" name="part_name"></div> 

<div class='type_left'><label for="hj_part">hj Part Number</label></div> 
<div class='type_left'><input type='text' name='hj_part'></div> 

jQuery的(注意:这一切工作正常,我在调试模式下运行,所以它不会尝试,并提交)

// Validate "Add Part" form ---------------- 
//------------------------------------------ 

$j('#addpartform').validate({ 
    debug: true, 
    rules: { 
     part_name: { 
     required: true 
     }, 
     hj_part: { 
     required: true 
     }, 
    }, 

    errorPlacement: function(error, element) { }, 

    invalidHandler: function(form, validator) { 
     var errors = validator.numberOfInvalids(); 
     if (errors) { 
      alert("Hey man, you didn't enter something.") 
     }   
    }, 
    submitHandler: function(form) { alert("works!") } 

}); 

//------------------------------------------ 
// End "Add Part" form validation ---------- 

做什么我需要添加到我的验证功能来做到这一点?

对我来说,这听起来像是超级简单,但我无法弄清楚。

在此先感谢您的帮助。 丹

回答

2

里面的,如果(错误),试试这个:

$('#addpartform :input').each(function(){ 
    if ($(this).val() == "")){ 
     $('label[for="' + $(this).attr('id') + '"]').css('color', '#fa0008'); 
    } 
}); 

基本上你通过表单中循环,如果任何输入都为空,那么颜色与“为”添加到标签属性与'id'相同。

+0

我实际上是在试着避免做一个循环。我决定只使用高亮和不高亮来在输入框周围添加边框。 – Dan