У меня есть форма с парой кнопок, и я использую плагин проверки jQuery из http://jquery.bassistance.de/validate/ . Я просто хочу знать, есть ли способ проверить, считается ли форма в допустимом состоянии плагином проверки jquery из любого места в моем коде javascript.
javascript
jquery
jquery-validate
Хайме Хаблуцель
источник
источник
Ответы:
Используйте
.valid()
из плагина проверки jQuery:$("#form_id").valid();
Где форма с
id='form_id'
- это форма, которая уже обратилась.validate()
к ней.источник
:)
TypeError valid() not a function
добавление плагина в свой файл, так как его плагин не включен в библиотеку jquery, например.<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
Ответ 2015 года: у нас есть это из коробки в современных браузерах, просто используйте HTML5 CheckValidity API из jQuery. Я также сделал для этого модуль jquery-html5-validity :
Затем:
var $ = require('jquery') require("jquery-html5-validity")($);
тогда вы можете запустить:
$('.some-class').isValid() true
источник
valid
функцию, поскольку она не вызываетvalidate
функцию и не проверяет вашу форму.Ответ @mikemaccana полезен.
И я также использовал https://github.com/ryanseddon/H5F . Найдено на http://microjs.com . Это своего рода полифилл, и вы можете использовать его следующим образом (в примере используется jQuery):
if ( $('form')[0].checkValidity() ) { // the form is valid }
источник
valid () метод.
http://docs.jquery.com/Plugins/Validation/valid
источник
iContribute: никогда не поздно дать правильный ответ.
var form = $("form#myForm"); if($('form#myForm > :input[required]:visible').val() != ""){ form.submit(); }else{ console.log("Required field missing."); }
Таким образом, базовая проверка HTML5 для «обязательных» полей происходит без вмешательства в стандартную отправку с использованием значений «name» формы.
источник
:input
и:visible
селекторы JQuery расширения и не является частью CSS. Подробности в документацииДля группы входов вы можете использовать улучшенную версию, основанную на ответе @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; }
источник
Для 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; } }); }); });
Надеюсь, это поможет вам!
источник