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

[FRAGE] Weitere Prüfung in Script für Radio buttons einfügen

heohni

New member
Hallo,

durch ein gekauftes Layout habe ich ein recht nettes JS Script für Formularprüfung bekommen, soweit ich mit meinem Wissen für JS komme, konnte ich es mir anpassen, aber mir fehlen noch zu meinem Glück 2 Kleinigkeiten. Die Prüfung von Radios und Checkboxen.

Das Script in Auszügen:

Code:
rx:{
						".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
						".state":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
						".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:'input'},
						".phone":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
						".message":{rx:/.{20}/,target:'textarea'},
					},
Überprüft wird dann hier:
Code:
isValid:function(el){							
						var ret=true
						$.each(_.rx,function(k,d){
							if(el.is(k))
								ret=d.rx.test(el.find(d.target).val())										
						})
						return ret							
					}

Nach diesem Schema müsste ich jetzt eine Regel entwerfen die bei radios und checkboxen greift.

Damit es hier versendet werden kann
Code:
,submitFu:function(){
						_.validateFu(_.labels)							
						if(!_.form.has('.'+_.invalidCl).length)
							$.ajax({
								type: "POST",
								url:_.mailHandlerURL,
								data:{
									name:_.getValFromLabel($('.name',_.form)),
									email:_.getValFromLabel($('.email',_.form)),
									phone:_.getValFromLabel($('.phone',_.form)),
									state:_.getValFromLabel($('.state',_.form)),
									message:_.getValFromLabel($('.message',_.form)),
								},
								success: function(){
									_.showFu()
								}
							})			
					},

Versteht man das so in diesen Auszügen?
Ich würde am liebsten erreichen, das radio und checkboxen gar nicht erst geprüft werden müssen, dazu müsste dann wohl in die Funktion isValid eine Ausnahme, das eben diese Formularwerte ausgelassen werden? Geht das irgendwie? Hat jemand eine Idee für mich?

Danke und Gruß
heohni
 
Zuletzt bearbeitet von einem Moderator:
Ich kann mir kaum vorstellen, dass die Überprüfung von Checkboxen und Radiobuttons da noch nicht drin ist. Da muss es doch eine Dokumentation dazu geben.

ABER so wie ich das sehe, werden sowieso nur die geprüft, für die du eine Regel angibst. Alle anderen werden ignoriert.
 
Übrigens zur Formularprüfung noch der Hinweis: Immer nur zusätzlich mit JS machen, aber nie alleine. Denn JS kann jeder deaktivieren bzw. austricksen. Deshalb IMMER serverseitig prüfen (z.B. per PHP-Skript)!
 
Hallo, ich hab das Formular hier: Fragebogen

Die Radios werden nicht übermittelt, aber sie sind auch nicht ansprechbar, irgendwo hängt da generell der Bock...
Es ist kein kritisches Formular, es ist auch nicht öffentlich, sondern wird per E-Mail verschickt, wenn sich Kontakte ergeben.
Von daher benötige ich das JS mehr aus optischen Gründen...

Eine Anleitungs gibts schon, aber leider nichts im Bezug auf radio oder checkbox...
Vielleicht klappt die Übertragung wirklich, wenn das radio richtig funktonieren würde... vielleicht muss ich dazu erst mal das lösen und dann sehen was passiert...
 
Hab' das mal getestet - der markierte Radiobutton wird schon übertragen... und auch sonst kann ich kein Problem damit erkennen.

PS: ich hab' wahrscheinlich eine Mail mit lauter Blödsinn drin ausgelöst...
 
Hallo, ich hätte zusätzlich folgende Frage:

".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
".vorname":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
".nachname":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
".wohnort":{rx:/^[a-zA-Z'][a-zA-Z-\/' ]+[a-zA-Z']?$/,target:'input'},

Diese Regel erlaubt keine UMLAUTE, wie kann ich diese hier noch einfügen?
 
Genau deswegen würde ich so eine Validierung bei Namen niemals machen. Prüfen, ob was eingegeben wurde - ja. Aber einen Namen kannst du sowieso nicht validieren. Woher willst du denn wissen, dass ein bestimmtes Zeichen in einem Namen irgendwo auf der Welt nicht vorkommt? Z.B. gibt es sicher irgendwelche "Wohnorte", die eine Zahl beinhalten... oder ein á oder ein è oder ein ß oder ein Ø oder ... Willst du das wirklich alles in deine RegExp reinpacken?

PS: Hast du denn ausprobiert, was passiert, wenn du die Umlaute einfach in die RegExp reinschreibst? (ACHTUNG: deine Datei muss die richtige Zeichenkodierung haben.)
 
Manchmal muss man den Nutzer einfach eingeben lassen, was er will... man muss dann hald bei der Weiterverarbeitung etwas sorgfältiger sein, aber das lohnt sich auf jeden Fall.
 
Zurück
Oben