PLZ Feld auf Zahlen prüfen

Hi,

wir haben Heute ein Problem in unserem Shop festgestellt (Oxid CE 4.4.7),
man kann im PLZ Feld auch Buchstaben eingeben was zu Problemen mit unserem Warenwirtschaftssystem führt. Plichtfeld Funktion funktioniert, es müsste nur noch auf Inhalt geprüft werden. Verstehe nicht ganz wie, wo und warum der Fehler auftaucht, dachte eigentlich das “ab Werk” auf richtigen Inhalt geprüft wird. :confused:

Kann mir evtl jemand sagen wo das PLZ Feld geprüft wird das ich gegebenenfalls die Funktion erweitern kann das auch auf richtigen Inhalt geprüft wird.

Buchstaben können aber eben auch Teil eines Postleitcodes sein, in England, Niederlande, USA…

Das ist wohl wahr aber da wir nur nach Deutschland liefern spielt das bei uns keine Rolle.

Edit: Habe es jetzt über Javascript gelöst und einfach im Eingabefeld nur Zahlen erlaubt, wär auf jeden Fall schön zu wissen wo man das in PHP regeln kann.

Hallo bell, kannst Du Dein Javascript mit uns teilen?

http://forum.oxid-esales.com/showthread.php?t=23540#post143974

Ich habe jetzt einfach ein simples Javascript drüber gelegt. Mein erster Versuch die oxvalidation.js umzuschreiben, habe ich aufgegeben, da es dann wieder bei Updates aufwendiger wird.

Man kann es natürlich auch noch eleganter als mit einem Alert lösen!

$(document).ready(function() {


	$( "input[name='invadr[oxuser__oxzip]']" ).focusout( function() {
		
		    if( $(this).val() != "" ) {
		    
		        var value = $(this).val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
		        var intRegex = /^\d+$/;
		        
		        if(!intRegex.test(value)) {
		            alert ("Bei der Postleitzahl bitte nur Zahlen eingeben");
		            $(this).val("");
		        }
		    } else {
		        alert ("leer");
		    }
		}
	);
	
	$( "input[name='deladr[oxaddress__oxzip]']" ).focusout( function() {
		
		    if( $(this).val() != "" ) {
		    
		        var value = $(this).val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
		        var intRegex = /^\d+$/;
		        
		        if(!intRegex.test(value)) {
		            alert ("Bei der Postleitzahl bitte nur Zahlen eingeben");
		            $(this).val("");
		        }
		    } else {
		        alert ("leer");
		    }
		}
	);
	
});

Danke Foxido :slight_smile: Habe es zu spät gesehen.

Tipp, du kannst mehrere Felder mit einem selektor ansprechen, einfach per Komma trennen:

$(document).ready(function() {


	$( "input[name='invadr[oxuser__oxzip]'],input[name='deladr[oxaddress__oxzip]']" ).focusout( function() {
		
		    if( $(this).val() != "" ) {
		    
		        var value = $(this).val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
		        var intRegex = /^\d+$/;
		        
		        if(!intRegex.test(value)) {
		            alert ("Bei der Postleitzahl bitte nur Zahlen eingeben");
		            $(this).val("");
		        }
		    } else {
		        alert ("leer");
		    }
		}
	);
	
});