2013-02-25 60 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