Всплывающее окно механизма проверки не работает при отправке с требованием html5

Я использую обязательный атрибут html5 в своей форме. Ниже приведены фрагменты кода

$('form').validationEngine('attach', {
  promptPosition: "centerRight",
  scroll: false,
  binded: false,
  onValidationComplete: function(form, status) {
    if (status == true) {

    } else {
      // foo; 
    }
  }
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/jQuery-Validation-Engine/2.6.4/validationEngine.jquery.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery-Validation-Engine/2.6.4/jquery.validationEngine.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery-Validation-Engine/2.6.4/languages/jquery.validationEngine-en.js"></script>
<form method="post">
  <input type="text" id="nameIt1" name="nameIt" placeholder="Product name..." class="text validate[required] nameIt" required="required">
  <input type="submit" value="Submit" class="button yellow">
</form>

Здесь всплывающее окно собственной проверки html5 появляется вместо всплывающего окна механизма проверки. Если я удаляю обязательный атрибут html5, код работает правильно.

Знатоки, просветите, пожалуйста.

Заранее спасибо.

Ганеша


person ganesh    schedule 15.12.2015    source источник


Ответы (1)


На самом деле, если основной целью этого кода является проверка необходимого текстового поля, ваш код работает нормально, потому что я уже протестировал его на своей машине. Необходимый атрибут должен присутствовать, чтобы сделать это поле обязательным для HTML5. Даже не обязательно устанавливать для этого атрибута какое-либо значение, оно должно быть таким:

<input type="text" id="nameIt1" name="nameIt" placeholder="Product name..." class="text validate[required] nameIt" required >

И это будет работать нормально. Если вы удалите этот атрибут, форма отправит сообщение обратно с пустым полем из вашего конкретного кода. Но если вы внесете некоторые изменения в свою функцию javascript, вы заметите всплывающее окно механизма проверки, и в этом случае обязательный атрибут не требуется. См. ниже здесь:

$('form').validationEngine('attach', {
    promptPosition: "centerRight",
    scroll: false,
    binded: false,
    onValidationComplete: function (form, status) {
        if (status == true) {
            form.validationEngine('detach');
            form.submit();
            alert('it is Ok');
        } else {
            alert('Not OK');
        }
    }
});

Я надеюсь, что это может помочь

person YeinCM-Qva    schedule 11.03.2016