我有一个包含三个步骤的表格:选择饮料,选择吃和发送。我在验证方面遇到了任何问题。现在我的验证仅适用于提交。但是我需要在每一步(在下一个按钮上)进行验证。怎么做?
$.validity = {
defaults: {
errors: {
badInput: 'Bad input',
customError: 'Custom error',
patternMismatch: 'Pattern mismatch',
rangeOverflow: 'Range overflow',
rangeUnderflow: 'Range underflow',
stepMismatch: 'Step mismatch',
tooLong: 'Too long',
tooShort: 'Too short',
typeMismatch: 'Type mismatch',
valueMissing: 'Value missing'
},
unknownError: 'Unknown error',
output: function(input, message) {
console.log('validity.output', input, message);
},
getMessage: function(input) {
if (input.validity.valid)
return '';
for (var error in this.errors) {
if (input.validity[error])
return this.errors[error];
}
return this.unknownError;
}
}
};
$.fn.validity = function(options) {
options = $.extend({}, $.validity.defaults, options);
return this.each(function() {
var component = $(this);
var form = component.closest('form');
var elements = $(form.prop('elements'));
elements.on('input', function() {
options.output(this, options.getMessage(this));
});
form.on('submit', function(e) {
if (this.checkValidity())
return;
e.preventDefault();
e.stopPropagation();
elements.trigger('input');
});
form.attr('novalidate', true);
});
}
var mainForm = '.form';
$(mainForm).validity({
output: function(input, message) {
var field = $(input).closest('.form__field');
field.toggleClass('m-error', !!message);
field.find('.form__error').text(message);
}
});
开满天机
至尊宝的传说
相关分类