2014-02-17 3 views
0

Мы используем jQuery Accordion & Проверка на той же странице ... В форме есть 3 аккордеоны.JQuery Validation, open accordion

Валидация работает отлично, но то, что я хочу сделать, - это если 1 из полей не действует, я хочу, чтобы аккордеон был открыт в поле in-valid.

Я пытаюсь сделать это на InvalidHandler, но не может заставить его открыть, я попытался с помощью следующих действий:

invalidHandler: function(event, validator, element) { 

    $('#form1').find('error.error-message').parents('fieldset').next().show(); 

}, 

Кто-нибудь удалось это сделать?

Спасибо.

ответ

0

если это класс добавить .

$('#form1').find('error.error-message').parents('fieldset').next().show(); 

в

$('#form1').find('.error.error-message').parents('.fieldset').next().show(); 
+0

Спасибо за этот пост, я попытался это, но он все еще не работает ... Я тоже не получаю ошибок в консоли. – WebDevB

+0

Я также пробовал: $ ('# form1'). Find ('. Error.error-message'). Parent ('fieldset'). Find ('legend'). Next(). Show(); – WebDevB

+0

может предоставить ваш html также или сделать скрипку – Prashobh

0

Если вы используете JQuery UI аккордеон и "ошибки" является имя класса, чем попробовать код, приведенный ниже.

$('#form1').find('.error.error-message').parent().parent().next().next().show(); 
+0

Вот скрипка: http://jsfiddle.net/ts5fz/1/ – WebDevB

1

Удалось решить эту проблему.

Я только что удалили один из .parents() из кода, так что теперь выглядит следующим образом:

$('#form1').find('.error.error-message').parents().show(); 

Спасибо.

0

Предположим, у нас есть аккордеон и его внутренние div. Тогда предположим, что внутренние div имеют несколько обязательных элементов проверки валидатора. У этого есть текст как «Пожалуйста, это поле обязательно».

Затем мы обнаружим, что требуемый валидатор и соответствующий внутренний текст имеют «Пожалуйста», затем найдите индекс аккордеона div шкафа. и сначала установите индекс для отображения. ниже $ ('[ID = MasterCard]) найти идентификатор, который имеет внутренний текст, как «MasterCard»

///managing the display of accordion tab has validation failure    


    $('[id*=MasterCard]').each(function() { 
     var reqID = this.style.display; 
     if (reqID == 'inline' && this.innerText.indexOf('Please') > -1) { 
      var index = $(this).closest(".ui-accordion-content") 
          .index(".ui-accordion-content"); 
      $("#accordion").accordion({ 
       active: index 
      }); 
     } 
    });