У меня есть форма с парой кнопок, и я использую плагин проверки jQuery из http://jquery.bassistance.de/validate/. Я просто хочу узнать, есть ли какой-нибудь способ проверить, рассматривается ли форма в действительном состоянии с помощью плагина проверки jquery из любого места в моем коде javascript.
Как проверить, является ли форма действительной программно, используя плагин проверки jQuery
Ответ 1
Используйте .valid()
из плагина jQuery Validation:
$("#form_id").valid();
Проверяет, является ли выбранная форма действительной или все выбранные элементы действительны. validate() должен быть вызван в форме перед проверять это с помощью этого метода.
Где форма с id='form_id'
является формой, к которой уже был обращен .validate()
.
Ответ 2
2015 ответ: У нас это из коробки в современных браузерах, просто используйте HTML5 CheckValidity API из jQuery. Я также сделал модуль jquery-html5-validity для этого:
npm install jquery-html5-validity
Тогда:
var $ = require('jquery')
require("jquery-html5-validity")($);
то вы можете запустить:
$('.some-class').isValid()
true
Ответ 3
@mikemaccana ответ полезен.
И я также использовал https://github.com/ryanseddon/H5F. Найдено на http://microjs.com. Это своего рода полифилл, и вы можете использовать его следующим образом (в качестве примера используется jQuery):
if ( $('form')[0].checkValidity() ) {
// the form is valid
}
Ответ 4
метод valid().
Ответ 5
iContribute: никогда не поздно для правильного ответа.
var form = $("form#myForm");
if($('form#myForm > :input[required]:visible').val() != ""){
form.submit();
}else{
console.log("Required field missing.");
}
Таким образом, базовая проверка HTML5 для обязательных полей выполняется без вмешательства в стандартную отправку с использованием значений формы "имя".
Ответ 6
Для группы входов вы можете использовать улучшенную версию, основанную на ответе @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;
}
Ответ 7
Для 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;
}
});
});
});
Надеюсь, это поможет вам!