• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Formvalidation

EvilBen

New member
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:

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;
         }
     });
 
Zurück
Oben