2013-02-25 28 views
0

我在我的表單中使用了驗證器插件。我有3組單選按鈕和1組複選框。我使用無線電和複選框的錯誤位置,如果發生錯誤,它將錯誤類放在特定的錯誤元素旁邊。使用html的jquery錯誤位置

 errorElement: "div", 
     wrapper: "div", // a wrapper around the error message 
     errorPlacement: function(error, element) { 
      if(element.is(":radio")){ 
       error.insertAfter('ul.radio'); 
       error.addClass('error_class'); 
      }else if(element.is(":checkbox")){ 
       error.insertAfter('ul.checkbox'); 
       error.addClass('error_class'); 
      } else{ 
       error.insertAfter(element); 
       error.addClass('error_class'); 
      } 
     }, 

它工作正常,如果我有一個複選框,單選按鈕組,但如果我有3個單選按鈕組,這產生3套錯誤旁邊上課無線電每個無線電組。像這樣...

我的下一個CSS是這樣的...

<div class="sgnup-cnt-inpt1"> 
        <h3>Type of Classes *</h3> 
        <ul class="lst1 radio"> 
         <li> 
          <span><input type="radio" class="required error" value="Academic" id="type_of_class_a" name="type_of_class"></span> 
          <label>Academic</label> 
         </li><li> 
          <span><input type="radio" class="required error" value="Non-Academic" id="type_of_class_n" name="type_of_class"></span> 
          <label> Non-academic</label> 
         </li> 
        </ul> 
<div><div htmlfor="teaching_exp" generated="true" class="error" style="display: block;">Required.</div></div> 
<div><div htmlfor="type_of_class" generated="true" class="error" style="display: block;">Required.</div></div> 
<div><div htmlfor="gender" generated="true" class="error" style="display: block;">Required.</div></div><div style="display: none;"><div htmlfor="type_of_class_insti" generated="true" class="error" style="display: none;">Required.</div></div> 
        <div id="radio"></div> 
       </div> 

注意我不希望在每種情況下電臺的錯誤位置,如果其他人使用。我想全球使用:radio。我不希望將它與名稱和其他屬性進行比較。

+0

請添加一個鏈接插件,這裏不僅有一個validator插件那裏... – iappwebdev 2013-02-25 09:38:37

+0

http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – Sankalp 2013-02-25 10:18:42

+1

你是否管理它? – iappwebdev 2013-02-26 07:51:46

回答

1

您正在使用指定的類插入每個ul元素後發生的錯誤,而不僅僅是相應的元素。嘗試:

errorPlacement: function(error, element) { 
    if(element.is(":radio")){ 
     error.insertAfter(element.closest('ul.radio')); 
     error.addClass('error_class'); 
    } else if(element.is(":checkbox")){ 
     error.insertAfter(element.closest('ul.checkbox')); 
     error.addClass('error_class'); 
    } else { 
     error.insertAfter(element); 
     error.addClass('error_class'); 
    } 
}, 

所以錯誤只得到追加到相關的錯誤元素ul

+0

偉大的人!向你致敬 !! – Sankalp 2013-02-26 09:18:47

+0

不客氣! – iappwebdev 2013-02-26 09:35:32