Archiv verlassen und diese Seite im Standarddesign anzeigen : Eingabe in Formular auf Umlaute überprüfen
Hallo,
ich versuche mit nachfolgender Java-Funktion, die beim Absenden eines Formulars aufgerufen wird, die Eingaben auf Umlaute überprüfen und mit Meldung anzuzeigen, daß diese vermieden werden sollen. Nur funktioniert diese Funktion nicht, weiß leider nicht mehr warum. Hier die Funktion, vielleicht findet jemand den Fehler.
function checkumlaute(feldname) {
var arr = feldname.match(/[üäöÄÖÜß]+/g);
if(arr.length == feldname.length)
return true;
else
alert ("Sie verwenden Umlaute, bitte ausschreiben");
document.formname.feldname.focus();
return false;
}
function checkumlaute(formname, feldname) {
var feld = eval('document.'+formname+'.'+feldname';
var arr = feld.value.match(/[^üäöÄÖÜß]+/);
if(arr.length == feld.value.length)
return true;
else{
alert ("Sie verwenden Umlaute, bitte ausschreiben");
feld.focus();
return false;
}
}
es funktioniert leider immer noch nicht. finde den Fehler einfach nicht. Ich poste hier mal den gesamten Code: (ist nicht lang :rolleyes:
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
function checkumlaute(formname, feldname) {
var feld = eval('document+'.'+formname+'.'+feldname');
var arr = feld.value.match(/[^üäöÄÖÜß]+/);
if(arr.length == feld.value.length)
return true;
else
{
alert ("Sie verwenden Umlaute, bitte ausschreiben");
feld.focus();
return false;
}
}
</SCRIPT>
</head>
<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
<FORM NAME="formname" ACTION="http://www.test.php" onSubmit="return checkumlaute()">
<INPUT TYPE="text" NAME="feldname" SIZE=40 VALUE="">
<INPUT TYPE="submit" NAME="submit" VALUE=" Submit ">
</Form>
</body>
</html>
PS: habe bei der eval-funktion eine Klammer hinzugefügt und ein Pluszeichen,
oha ... ich war davon ausgegangen, dass formname und feldname die Funktionsparameter sein sollen, die Namen des Formulars und des Feldes beinhalten.
So wie es ist, muss das natürlich so heißen:
function checkumlaute() {
var feld = document.formname.feldname;
...
ohne eval, Klammern, + und Hochkommata
es funktionierte eben nicht, weil die Parameter nicht übergeben wurden (jetzt braucht die Funktion keine mehr) UND wegen eines kleinen Tippfehlers in der eval-Zeile.
jetzt aber!
jetzt geht diese Funktion, ich habe diese Abfrage erst getrennt getestet und wollte diese dann in eine bestehende Javascript-Abfrage einbetten mit
function add_form() {
if((document.formname.feldname.value == "") || (document.formname.feldname.value.match(/[üäöÄÖÜß]+/g).length > 0)) {
alert("Sie haben keinen Wert angegeben oder Sie verwenden Umlaute");
document.formname.feldname.focus();
return false
}
aber leider funktioniert das Hinzufügen dieser Bedingung zu der bestenden Bedingung nicht mehr - gibts hierfür eine Lösung?
Ich habe schon versucht 2 if ... -clauses daraus zu machen, aber auch ohne Erfolg.
hmm ... sieht korrekt aus :confused:
Es ist mir ein Rätsel, warum die die Java-Funktion nicht funktioniert. Um das Problem einzugrenzen, habe ich nachfolgende Javafunktion AbGehts() erstellt, welche über einen submit-button aufgerufen werden soll, aber nicht funktioniert, nehme ich die gesamte If-Bedingung weg, dann wir sie aufgerufen, - aber warum? Ich kann an dieser if-Bedingung nichts falsches sehen, was den Aufruf der Funktion behindern soll. Bin für jede Hilfe dankbar :huep:
<body>
<form name=Testform action="/test.php3" method=post>
<input type=text size=40 name="Feldname"><br>
</form>
<INPUT TYPE="button" NAME="submit" VALUE="Submit " onclick="javascript: AbGehts(); ">
<script language="JavaScript">
function AbGehts() {
if(document.Testform.feldname.value.match(/[üäöÄÖÜß]+/g).length > 0)
document.Testform.submit();
}
</script>
</body>
'java script' soll natürlich zusammengeschrieben sein, an dem liegts nicht
Habe nun den Fehler doch tätsächlich noch gefunden (kurz vor Ausschalten der Kiste), die o.g. Funktion muß lauten:
function add_form() {
if((document.formname.feldname.value == "") || (document.formname.feldname.value.match(/[üäöÄÖÜß]+/g) > "0")) { ......
d.h. das "length" habe ich weggemacht und die 0 habe ich in Anführungs gesetzt, jetzt gehts
:D
Original geschrieben von Ralf
'java script' soll natürlich zusammengeschrieben sein, an dem liegts nicht daran ist das Forum schuld, können wir auch irgendwie nicht abstellen ... sorry :(
San Shao 04-07-2004, 19:45 Original geschrieben von Ralf
Habe nun den Fehler doch tätsächlich noch gefunden (kurz vor Ausschalten der Kiste), die o.g. Funktion muß lauten:
function add_form() {
if((document.formname.feldname.value == "") || (document.formname.feldname.value.match(/[üäöÄÖÜß]+/g) > "0")) { ......
d.h. das "length" habe ich weggemacht und die 0 habe ich in Anführungs gesetzt, jetzt gehts
:D
wie genau sieht denn das ganze jetzt insgesamt bei dir aus? hatte es mal versucht aber da kommt er ständig mit der meldung auch wenn keine umlaute drin sind ... was muss ich denn machen, wenn ich mehrere felder überprüfen lassen will? mir geht's eigentlich nur um die umlaute da ein leeres feld bereits von php kontrolliert wird
grüße san
mir geht's eigentlich nur um die umlaute da ein leeres feld bereits von php kontrolliert wirdwenn du umlaute vermeiden willst, mußt du doch trotzdem noch mit php checken .... !?
San Shao 04-07-2004, 22:01 Original geschrieben von derHund
wenn du umlaute vermeiden willst, mußt du doch trotzdem noch mit php checken .... !?
hmm ... wie gesagt php checkt auch ob die felder leer sind oder nicht aber das problem ist, dass man umlaute eingeben kann und diese dann bei einer automatischen link generierung mit hinein kommen ... klar dass dann der link natürlich nicht funktioniert ... und jetzt such ich eben eine möglichkeit das hinzubekommen
Original geschrieben von derHund
wenn du umlaute vermeiden willst, mußt du doch trotzdem noch mit php checken .... !? ob umlaute vorhanden sind, da bei deaktiviertem js dir eine überprüfung mit js wenig bringt.
San Shao 04-07-2004, 22:42 Original geschrieben von derHund
ob umlaute vorhanden sind, da bei deaktiviertem js dir eine überprüfung mit js wenig bringt.
ich weiß ich bin dafür jetzt im falschen forum aber wenn es mit php auch eine möglichkeit gibt das zu prüfen und gegebenen falls das formular nicht abzuschicken wäre ich für diese lösung überaus dankbar :rolleyes:
|
|