TOPIC:

Re:Datum Validieren 14 years 1 month ago #7637

  • Topic Author
  • Suli3
  • Offline
  • Junior Member
  • Junior Member
  • Registered
  • Posts: 64
  • Thanks: 0
Hi all

Ich konnte es nicht mehr sein lassen und habe noch einige Verbesserungen hinzugefügt.
1) Trennzeichen werden automatisch erkannt sei es .,/#@ usw.
2) Es wird erkannt wenn das jahr 2 stellig eingegeben wurde und automatisch korrigiert
3) Es wird auf den Tag genau gerechnet
4) Und natürlich kann man die Volljährigkeit errechnen.

Ich hoffe ich kann jemandem helfen damit. Ich hab dabei viel gelernt :cheer:


function ff_validbirthdate(element, message) {
var checkstr = "0123456789";
var DateField = element;
var DateValue = "";
var DateTemp = "";
var seperator = ".";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;
var min_age = 18;
err = 0;

DateValue = DateField.value;
/* Entfernt alle Zeichen ausser die Zahlen 0 bis 9 */
for (i = 0; i < DateValue.length; i++) {
	if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
		DateTemp = DateTemp + DateValue.substr(i,1);
	}
}

DateValue = DateTemp;
/* Bestimmt den Monat aus dem String und korrigiert es falls das Jahr nur zweistellig eingegeben wurde (alles was grösser wie 35 ist kriegt ein 19 davor sonst 20) */
if (DateValue.length == 6 ){
	if (DateValue.substr(DateValue.length-2,DateValue.length) > 35){
		year = "19" + DateValue.substr(4,2);
	} else {
		year = "20" + DateValue.substr(4,2);
	}
} else {
	year = DateValue.substr(4,4);
}
/* Falls das Jahr nicht ein korrektes format 1999 oder 99 hat */
if (DateValue.length > 8 || DateValue.length < 6) { err = 19;}
/* Falls das Jahr unzulässig ist sprich 0000 */
if (year == 0000) { ff_validationFocus(element.name); return message; }

/* Bestimmt den Monat aus dem String */
month = DateValue.substr(2,2);
/* Falls der Monat nicht zulässig ist sprich 00 oder 13 */
if ((month < 1) || (month > 12)) { err = 21; }
/* Bestimmt den Tag aus dem String */
day = DateValue.substr(0,2);
/* Falls der Tag nicht zulässig ist sprich 00 oder 13 */
if ((day < 1) || (day > 31)) { err = 22; }
/* Hier wird das Schaltjahr berechnet */
if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) { leap = 1; }
if ((month == 2) && (leap == 1) && (day > 29)) { err = 23; }
if ((month == 2) && (leap != 1) && (day > 28)) { err = 24; }
/* Länge der Monate wird definiert */
if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) { err = 25; }
if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) { err = 26; }
/* Wenn bisher kein Fehler, wird das eingabefeld korrekt angepasst */
if (err == 0) {
	DateField.value = day + seperator + month + seperator + year;
} else { 
	ff_validationFocus(element.name);
	return message;
}
/* Hier wird das angegebene Datum zusammengefügt und 18 jahre werden dazugerechnet */
var theirDate = new Date((Number(year) + min_age), month-1, day);
/* Heutiges Datum wird gelesen */
var today = new Date;
/* Hier wird das Alter gerechnet auf den Tag genau */
var ergeb = ((((((today.getTime() - theirDate.getTime()) / 1000)/60)/60)/24)/365.25);
/* Hier wird berechnet ob die Person ein bestimmtes alter hab (bei mir min 18 max 70 jahre */
if ((ergeb < 0.00) || (ergeb > 52.00)) {
	ff_validationFocus(element.name);
	return message;		
	//ff_returnHome();
}
/* Falls keine Angabe gemacht wurde und as Feld ein Pflichtfeld ist*/
if (element.value!='') return ''; 
if (message=='') message = "Please enter "+element.name+".\n";
  ff_validationFocus(element.name);
  return message;
}

Please Log in or Create an account to join the conversation.

Re:Datum Validieren 14 years 1 month ago #7641

  • TheMuffinMan
  • Visitor
  • Visitor
danke, sieht gut aus.

Kannst auch gerne ein kleine Paket erstellen daraus und das in der Downloadsection anbieten. (Legacy Releases => BreezingForms => packages)

Please Log in or Create an account to join the conversation.

Re: Datum Validieren 11 years 5 months ago #71231

  • enserk
  • Offline
  • Junior Member
  • Junior Member
  • Registered
  • Posts: 75
  • Thanks: 0
wie kann ich denn dieses Skript in ein Formular das mit dem QuickMode erstellt wurde einbinden?

Please Log in or Create an account to join the conversation.

Re: Datum Validieren 11 years 5 months ago #71274

  • enserk
  • Offline
  • Junior Member
  • Junior Member
  • Registered
  • Posts: 75
  • Thanks: 0
denke, dass ich das einbinden hinbekommen habe; doch leider funktioniert das Skript bei mir nicht.
Habe das Skript unter Skript neu erstellt; den Namen eingegeben und den Code eingegeben; Typ Element Validierung ausgewählt... Was hab ich da vergessen?

Please Log in or Create an account to join the conversation.

Aw: Re: Datum Validieren 11 years 5 months ago #71352

  • enserk
  • Offline
  • Junior Member
  • Junior Member
  • Registered
  • Posts: 75
  • Thanks: 0
Hat da wirklich niemand Rat?

Please Log in or Create an account to join the conversation.

Aw: Datum Validieren 11 years 5 months ago #71354

  • Syno
  • Offline
  • Platinum Member
  • Platinum Member
  • Registered
  • Posts: 2186
  • Thanks: 209
Hallo,

Also das einzige worauf du achten musst ist das der Name des Scripts dem Funktionsnamen entspricht .

Was genau heißt denn funktioniert nicht ? Kannst du mal in der Fehlerkonsole nachschauen ob irgendwas ausgegeben wird?


Gruß,
Syno

Please Log in or Create an account to join the conversation.

Moderators: ForumSupport
Time to create page: 0.060 seconds

Quick Links

Downloads

BreezingForms

ContentBuilder

BreezingCommerce

Templates

Documentation

BreezingForms

ContentBuilder

BreezingCommerce

Apprendre BreezingForms (French Community)

Apprendre et maîtriser BreezingForms par des tutoriels et exemples, le tout en français

breezingforms.eddy-vh.com

Questions et réponses sur les forums de l'AFUJ

AFUJ

Subscribe to news and updates!

Special Offer

Sale! All subscriptions at a special price!

Includes prio support, all of our current and future Joomla!® extensions and Joomla!® templates for the duration of your membership.

Get it from here

3rd Party Discount - 25% Off

We help you to keep your costs under control. If you are a new member and purchased a form building tool from a different form vendor, then you'll get a 25% discount on our subscription plans.

How to receive the discount:

Send us a quick email to sales@crosstec.org with a proof of purchase (for example a paypal receipt), await payment instructions and enjoy your membership!

Live Support Chat Opened!

Join our Discord chat here and enter the Crosstec channels to receive live support and talk directly to the team!