2013-02-25 1 views
0

Я использую плагин validator в своей форме. У меня есть 3 набора переключателей и 1 набор флажков. Я использую размещение ошибок для радио и флажков, так что при возникновении ошибки кладет класс ошибки рядом с определенным элементом ошибки.Ошибка размещения JQuery с html

 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

Пожалуйста, добавьте ссылку на плагин, там есть не только один валидатор для проверки ... – iappwebdev

+0

http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – Sankalp

+1

Ну, вам это удалось? – iappwebdev

ответ

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

+0

Добро пожаловать! – iappwebdev

Смежные вопросы