2015-08-16 3 views
1

Ive сделал форму, которая имеет несколько разделов, последующие разделы скрыты, но будут отображаться после того, как пользователь нажмет следующую кнопку в текущем разделе. Я пытаюсь сделать простую «проверку» на этом клике до того, как будет отображаться остальная часть формы.проверка одного набора полей при нажатии с использованием Jquery validate

Насколько я могу собрать из других вопросов, касающихся здесь мой метод должен работать .. var validate должна равняться true, если будут обнаружены ошибки, которые остановят форму прогрессирующей, но позволят форме прогрессировать после того, как поля были заполнены и снова нажимается кнопка

Однако все это, похоже, делает в настоящий момент подтверждение самого первого поля, а затем ничего не делает. Даже если поле действительно, оно все равно не будет продвигаться с остальными действиями функции.

библиотеку JS: http://cdn.jsdelivr.net/jquery.validation/1.14.0/jquery.validate.min.js

метод им пытаются использовать: http://jqueryvalidation.org/Validator.element/

<div class="col-sm-8 sec-one"> 
    <div class="form-group"> 
     <select name="t1" required> 
      <option value="" disabled selected>Choose an option...</option> 
      <option value="B">B</option> 
      <option value="C">C</option> 
      <option value="A">A</option> 
      <option value="D">D</option> 
     </select> 
    </div> 
    <div class="form-group"> 
     <select name="t2" required> 
      <option value="" disabled selected>Choose an option...</option> 
      <option value="A">A</option> 
      <option value="D">D</option> 
      <option value="B">B</option> 
      <option value="C">C</option> 
     </select> 
    </div> 
    <button type="button" class="formbut next1">Next</button> 
</div> 


var validator = $("form").validate(); 

$(".next1").click(function() { 
    validator.element('.sec-one [name]'); 
    if (validator) { 
     $(".sec-one").slideUp("slow", function() { 
      $(".sec-two").slideDown("slow"); 
     }); 


    } else {} 
}); 
+0

* "Насколько я могу собрать из других вопросов, здесь мой метод должен работать ..' вар validate' должен быть равен 'true', если обнаружены ошибки" * ~ I Не знаю, где вы это видели. Обратитесь на [официальный сайт] (http://jqueryvalidation.org) и просто используйте метод .valid() 'для *** test *** формы. 'true' указывает ** ** ** ошибки. В противном случае '$ ('# yourform'). Validate(). Element()' возвращает 'true', если есть ** нет ** ошибок. В вашем коде вы отбросили часть 'element()' из вашего условного выражения. – Sparky

+0

@Sparky приветствует это. Не могли бы вы правильно указать способ сделать это в качестве ответа, чтобы я мог дать вам кредит? Будьте полезны и для других пользователей – Ash

ответ

3

«Насколько я могу собрать из других вопросов, касающихся вот мой метод должен работать .. var validate должна равняться true если обнаружены ошибки "

I'm not sure where you saw that. В вашем коде вы отбросили часть element() из вашего условного. И $('#yourform').validate().element() предполагается возвращение true если нет ошибок.

var validator = $("#myform").validate(); // create the validator variable 
validator.element("#myselect"); // test an element 

Лучший способ ...

Обратитесь к официальному веб-сайт и просто использовать the .valid() method, чтобы проверить форму и/или отдельных элементов. A true указывает нет ошибок.

$('#myform').valid(); 

или

$('input[name="myelement"]').valid(); 
Смежные вопросы