Подтвердить что ты не робот

Проверка триггера петрушки без формы отправки?

Учитывая этот код, он никогда не работает и всегда возвращает true?

<form id="my-form" data-validate="parsley">
  <p>
    <label for="username">Username * :</label>
    <input type="text" id="username" name="username" data-required="true" >
  </p>

  <p>
    <label for="email">Email Address * :</label>
    <input type="text" id="email" name="email" data-required="true" >
  </p>

  <br/>

  <!-- Validate all the form fields by clicking this button -->
  <a class="btn btn-danger" id="validate" >Validate All</a>
</form>

<script>
var $form = $('#my-form');
$('#validate').click (function () {
    if ( $form.parsley('validate') )
      console.log ( 'valid' ); <-- always goes here
    else
      console.log ('invalid');
});

</script>

Итак, мой вопрос в том, есть ли способ инициировать проверку парселя без добавления кнопки отправки?

4b9b3361

Ответ 1

$form.parsley('validate') - API 1.x. Это было устарело в версиях 2.x, которые вы могли бы использовать.

Попробуйте $form.parsley().validate().

Лучшие

Ответ 2

Я искал высоко и низко, чтобы попытаться выполнить работу по проверке формы с тегом non-form. Я предполагаю, что моя самая большая проблема с каркасом заключается в том, что он не работает из коробки с элементами неформы. Я был бы в порядке, используя элемент формы, если бы он не прокручивался до верхней части страницы каждый раз, когда он пытается проверить. Поскольку это поведение присуще тому, как работает форма, есть только этот хак, чтобы исправить его.

Так же, как и побочная заметка, также используется атрибут data-parsley-validate для тега div. Вы также можете инициализировать форму как обычно (это означает, что вы можете подписаться на проверку).

Пример html:

<div id="signupForm" data-parsley-validate>
    ... put form inputs here ...
    <button id="signupBtn">Sign me up</button>
</div>

Просто включите js в:

var $selector = $('#signupForm'),
    form = $selector.parsley();

form.subscribe('parsley:form:success', function (e) {
    ...
});

$selector.find('button').click(function () {
    form.validate();
});

Ответ 3

если вы поместите type = "button" на кнопку, она не будет обновляться и прокручиваться к началу страницы при нажатии.