2011-08-30 64 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。 就像你的代码一样,你已经提到了复杂的结构。 请确保您将这些错误位置置于顶部,并且最通用,就像您的代码位于底部一样。