Как проверить, если форма действительна программно с помощью плагина проверки jQuery - PullRequest
79 голосов
/ 12 июля 2011

У меня есть форма с парой кнопок, и я использую плагин проверки jQuery из http://jquery.bassistance.de/validate/. Я просто хочу узнать, есть ли способ проверить, считается ли форма в действительном состоянии jquery плагин проверки из любого места в моем коде JavaScript.

Ответы [ 7 ]

114 голосов
/ 12 июля 2011

Использование .valid():

$("#form_id").valid();

Проверяет, является ли выбранная форма действительной или все выбранные элементы действительны. validate () должен быть вызван в форме перед проверяя это с помощью этого метода.

Где форма с id='form_id' является формой, к которой уже обращались .validate().

31 голосов
/ 05 февраля 2015

2015 answer: У нас это есть в современных браузерах, просто используйте HTML5 CheckValidity API от jQuery.Я также создал jquery-html5-validity модуль , чтобы сделать это:

npm install jquery-html5-validity

Затем:

var $ = require('jquery')
require("jquery-html5-validity")($);

, затем вы можете запустить:

$('.some-class').isValid()

true
7 голосов
/ 21 декабря 2015

@ mikemaccana ответ полезен.

И я также использовал https://github.com/ryanseddon/H5F. Нашел на http://microjs.com. Это какой-то вид полифилла, и вы можете использовать его следующим образом (в качестве примера используется jQuery):

if ( $('form')[0].checkValidity() ) {
    // the form is valid
}
5 голосов
/ 12 июля 2011
4 голосов
/ 29 декабря 2014

iContribute: для правильного ответа никогда не поздно.

var form = $("form#myForm");
if($('form#myForm > :input[required]:visible').val() != ""){
  form.submit();
}else{
  console.log("Required field missing.");
}

Таким образом, базовая проверка HTML5 для «обязательных» полей происходит без вмешательства в стандартную отправку с использованием значений «name» формы.

2 голосов
/ 29 февраля 2016

Для группы входов вы можете использовать улучшенную версию, основанную на ответе @ mikemaccana

$.fn.isValid = function(){
    var validate = true;
    this.each(function(){
        if(this.checkValidity()==false){
            validate = false;
        }
    });
};

, теперь вы можете использовать это для проверки правильности формы:

if(!$(".form-control").isValid){
    return;
}

Вы можете использовать ту же технику, чтобы получить все сообщения об ошибках:

$.fn.getVelidationMessage = function(){
    var message = "";
    var name = "";
    this.each(function(){
        if(this.checkValidity()==false){
            name = ($( "label[for=" + this.id + "] ").html() || this.placeholder || this.name || this.id);
            message = message + name +":"+ (this.validationMessage || 'Invalid value.')+"\n<br>";
        }
    })
    return message;
}
0 голосов
/ 16 мая 2018

Для Magento вы проверяете проверку формы, как показано ниже.

Вы можете попробовать это:

require(["jquery"], function ($) {
    $(document).ready(function () {
        $('#my-button-name').click(function () { // The button type should be "button" and not submit
            if ($('#form-name').valid()) {
                alert("Validation pass");
                return false;
            }else{
                alert("Validation failed");
                return false;
            }
        });
    });
});

Надеюсь, это может помочь вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...