Huhu liebes Forum,
ich hänge an nem kleinen Problemchen fest. Hoffe ihr könnt mir weiterhelfen.
Ich baue gerade mit dem Bootstrap Formvalidator ein Registrierungsformular. Die Registrierung soll nur Usern Ü18 zustehen.
Nun habe ich es so gemacht:
Man gibt sein Geburtsdatum ein (TT.MM.JJJJ), JS errechnet das Alter und füllt ein Hidden Feld mit dem Alter. So weit so gut. Nun erkennt das Script des Validators jedoch nicht, dass etwas in das Hidden Feld eingegeben wurde, ergo wird auch keine Fehlermeldung ausgegeben wenn ein Alter U18 angegeben wird.
Gebe ich das Alter manuell ein, funktioniert alles 1A !
Hier der Code des Validators:
kann ich vielleicht mit JS einfach simulieren, dass eine Taste gedrückt wurde?
Hier der Code, der das Alter füllt:
ich hänge an nem kleinen Problemchen fest. Hoffe ihr könnt mir weiterhelfen.
Ich baue gerade mit dem Bootstrap Formvalidator ein Registrierungsformular. Die Registrierung soll nur Usern Ü18 zustehen.
Nun habe ich es so gemacht:
Man gibt sein Geburtsdatum ein (TT.MM.JJJJ), JS errechnet das Alter und füllt ein Hidden Feld mit dem Alter. So weit so gut. Nun erkennt das Script des Validators jedoch nicht, dass etwas in das Hidden Feld eingegeben wurde, ergo wird auch keine Fehlermeldung ausgegeben wenn ein Alter U18 angegeben wird.
Gebe ich das Alter manuell ein, funktioniert alles 1A !
Hier der Code des Validators:
Code:
$(document).ready(function() {
$('#reg_form').bootstrapValidator({
// To use feedback icons, ensure that you use Bootstrap v3.1.0 or later
feedbackIcons: {
//valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
vorname: {
validators: {
stringLength: {
min: 3,
message: 'Dein Vorname ist zu kurz'
},
notEmpty: {
message: 'Gebe deinen Vornamen ein'
}
}
},
nachname: {
validators: {
stringLength: {
min: 3,
message: 'Dein Nachname ist zu kurz'
},
notEmpty: {
message: 'Gebe deinen Nachnamen ein'
}
}
},
email: {
validators: {
notEmpty: {
message: 'Gebe deine Email an'
},
emailAddress: {
message: 'Gebe eine gültige Email an'
}
}
},
passwort: {
validators: {
notEmpty: {
message: 'Wähle ein Passwort'
},
stringLength: {
min: 6,
message: 'Wähle ein längeres Passwort'
}
}
},
birthday: {
validators: {
notEmpty: {
message: 'Gebe dein Geburtsdatum an'
}
}
},
alter:{
validators: {
greaterThan: {
value: 18,
message: 'Du musst mindestens 18 Jahre alt sein'
}
}
}
}
})
.on('success.form.bv', function(e) {
$('#success_message').slideDown({ opacity: "show" }, "slow") // Do something ...
$('#reg_form').data('bootstrapValidator').resetForm();
// Prevent form submission
e.preventDefault();
// Get the form instance
var $form = $(e.target);
// Get the BootstrapValidator instance
var bv = $form.data('bootstrapValidator');
// Use Ajax to submit form data
$.post($form.attr('action'), $form.serialize(), function(result) {
console.log(result);
}, 'json');
});
});
kann ich vielleicht mit JS einfach simulieren, dass eine Taste gedrückt wurde?
Hier der Code, der das Alter füllt:
Code:
var alter = "";
$('#birthday').keyup(function(e){
alter = document.getElementById('birthday').value;
var birth = alter.split(".");
var day = birth[0];
var month = birth[1];
var year = birth[2];
var today = new Date();
var birthdate = new Date(year, month, day);
var age = today.getFullYear() - birthdate.getFullYear();
var m = today.getMonth() - birthdate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthdate.getDate())) {
age--;
}
if(age < 100){
document.getElementById('alter').value = age;
}
});