2012-08-30 70 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