2011-08-30 57 views
0

我驗證了一個窗體與jquery驗證,並有一個小小的麻煩一致地設置錯誤的位置。輸入字段有不同的嵌套層次,有些嵌套div。但是,對於所有錯誤,我希望將其放置在問題輸入字段上方的班'warm'範圍內。我試過最親密的,父母,似乎不工作。我可以明確地遍歷樹,但只有當元素處於同一嵌套層次時纔可以工作。我認爲最接近的應該可以工作,但它不會(我錯了)做任何幫助表示讚賞。jquery驗證errorPlacement

$("#paymentpreferences").validate({ 
    rules: {  
     minpayment: { 
      digits: true, 
      min: 5 
      }  
    }, 
    errorPlacement: function(error, element) {  
     $(element).parents('span .warming :first').html(error); 
    }, 
    success: function(label){   
     label.next().next().addClass('tick'); 
    } 
}); 

樣本HTML,請參見「方法」選擇是在一個div嵌套,但accountno不是

        <span class="warming"></span> 
             <div class="lab_box"><label class="lab">payment type</label></div> 
             <div class="input_box"> 
              <div class="gender_box"> 

               <select name="method" id="method" tabindex="1" class="ins required"> 
               <option value="1" label="PayPal">PayPal</option> 
               </select>          
              </div> 
              <a href="#" title="tooltip_paymentmethod" class="question tooltips"></a> 
              <div class=" fill"></div> 
             </div> 
             <div class="wb_clear"></div> 
             <span class="warming"></span> 

             <div class="lab_box"><label class="lab">account number</label></div> 
             <div class="input_box"> 
              <span> 
              <input type="text" name="accountno" id="accountno" value="asdasd" tabindex="2" class="ins required" size="30" /> 
              </span> 
              <a href="#" title="tooltip_accountno" class="question tooltips"></a> 
              <div class="fill"></div> 
             </div> 

回答

3

如果你想在一個特定的股利或跨度可以專門指定的錯誤信息只需爲該元素寫入錯誤位置就可以了。

if (element.is("#your_field")) 
    error.appendTo('#your_field_err'); 

這裏your_field_err是您的錯誤div或span的ID。而your_field是該字段的ID。 就像你的代碼一樣,你已經提到了複雜的結構。 請確保您將這些錯誤位置置於頂部,並且最通用,就像您的代碼位於底部一樣。

相關問題