下面是常见的验证函数。在上进行了更改
resetControls
但它不起作用。
'use strict';
$(document).ready(function () {
validate.extend(validate.validators.datetime, {
parse: function(value, options) {
return +moment.utc(value);
},
// Input is a unix timestamp
format: function(value, options) {
var format = options.dateOnly ? "DD/MM/YYYY" : "DD/MM/YYYY";
return moment.utc(value).format(format);
}
});
var adminTeachertimetableConstraints = {
teacherDropdown: {
presence: true,
},
studentDropdown:{
presence: true,
},
bookedDateDropdown:{
presence: true,
},
};
// Hook up the form so we can prevent it from being posted
var form = document.querySelector("form#rescheduleBooking");
form.addEventListener("submit", function(ev) {
ev.preventDefault();
handleFormSubmit(form);
});
// Hook up the inputs to validate on the fly
var inputs = document.querySelectorAll("input, textarea, select");
for (var i = 0; i < inputs.length; ++i) {
inputs.item(i).addEventListener("change", function(ev) {
resetControls(inputs);
var errors = validate(form, adminTeachertimetableConstraints) || {};
generateMessage(errors, this);
});
}
function handleFormSubmit(form, input) {
var errors = validate(form, adminTeachertimetableConstraints);
if(typeof(errors) === 'undefined'){
$(form).trigger('submit');
}
generateMessage(errors, input);
}
function generateMessage(errors, input){
$.each(errors, function(input, error){
$.each(error, function(index, msg){
addError(input, msg);
});
});
}
function addError(input, error) {
var block = document.createElement("p");
block.classList.add("text-danger");
block.classList.add("error");
block.innerText = error;
$("#"+input).nextAll("span.messages:last-child").html(block);
}
function resetControls(inputs){
$.each(inputs, function(index, input){
$(input).nextAll("span.messages:last-child").html("");
});
}
});