Warum funktioniert die Überprüfung des Formulars nicht?
icheben
- javascript
0 Christian S.0 Gernot Back0 icheben0 Vinzenz Mai0 icheben
0 Tom0 ChrisB
Ich habe eine Formular in PHP geschrieben.
In diesem Formular hab ich eine Feldüberprüfung mit Javascript eingebaut.
Das funktioniert nicht. Wo liegt der Fehler?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<SCRIPT LANGUAGE="JavaScript">
function checkForm()
{
//====== Prueft Feld NAME auf Zeichezahhl und vollständigkeit======
if(document.adminForm.link_name.value=="")
{
alert ("Bitte geben Sie Ihre Frage ein!");
document.adminForm.link_name.focus();
return false;
}
if( document.adminForm.link_name.value.length <3 )
{
alert ("Eine Frage sollte aus mehr als 3 Zeichen bestehen!");
document.adminForm.link_name.focus();
return false;
}
//====== Prueft Feld ob ein Fragezeichen am Ende vorhanden ist ======
if (document.adminForm.link_name.value=="")
{alert ("Bitte geben Sie eine Frage ein.");
document.adminForm.link_name.focus();
return false
}
if(document.adminForm.link_name.value.indexOf('?')==-1
{
alert ("Dies ist keine Frage. Eine Frage hat ein Fragezeichen am Ende.");
document.adminForm.link_name.focus();
return false
}
}
//-->
</script>
</head>
<body>
<form action="http://www.example.de/index.php" method="post" enctype="multipart/form-data" name="adminForm" id="adminForm">
<input class="inputbox text_area" type="text" name="link_name" id="link_name" size="50" value="" />
<input type="hidden" name="option" value="com_content" />
<input type="hidden" name="task" value="speichern" />
<input type="hidden" name="Itemid" value="34" />
<input type="hidden" name="cat_id" value="89" />
<input type="hidden" name="andere_cats" id="andere_cats" value="" />
<input type="hidden" name="<?php echo josSpoofValue(); ?>" value="1" />
<input type="submit" value="Absenden" class="button" onclick="return checkForm()" />
</form>
</body>
</html>
Das funktioniert nicht.
Damit kann wohl keiner was anfangen..
überlicherweise wird das event auch im onsubmit der <form> untergebracht.
Gruß!
Hallo icheben,
Ich habe eine Formular in PHP geschrieben.
In diesem Formular hab ich eine Feldüberprüfung mit Javascript eingebaut.
Das funktioniert nicht. Wo liegt der Fehler?
Hast du es mal versucht, die Formularprüfung mit "return checkForm()
" im onsubmit-Eventhandler des FORM-Elements stattfinden zu lassen statt im onclick-Eventhandler des Submit-Buttons?
Gruß Gernot
Es Funktioniert nicht bedeutet das das Formular ohne Überprüfung gespeichert wird.
Ich weiß nicht wo der Fehler liegt.
Was müßte denn verändert werden das es bevor es gespeichert wird überprüft wird?
Hallo,
Es Funktioniert nicht bedeutet das das Formular ohne Überprüfung gespeichert wird.
und fängt die hoffentlich vorhandene serverseitige Prüfung das nicht ab?
Freundliche Grüße
Vinzenz
Serverseitig wird nichts mehr geprüft. Es sind keine sicherheitsrelevanten Daten die verschickt werden. Einfacher Text nur der in der Datenbank gespeichert wird.
Hallo,
Serverseitig wird nichts mehr geprüft. Es sind keine sicherheitsrelevanten Daten die verschickt werden. Einfacher Text nur der in der Datenbank gespeichert wird.
wozu prüfst Du dann clientseitig?
Serverseitige Prüfung ist Pflicht, clientseitige (empfehlenswerte) Kür.
Freundliche Grüße
Vinzenz
Serverseitig wird nichts mehr geprüft. Es sind keine sicherheitsrelevanten Daten die verschickt werden. Einfacher Text nur der in der Datenbank gespeichert wird.
wozu prüfst Du dann clientseitig?
Serverseitige Prüfung ist Pflicht, clientseitige (empfehlenswerte) Kür.
Ich prüfe ob das Textfeld auch Text enthält und ob in dem Text ein Fragezeichen vorkommt. Denn das ist erforderlich für meine Zwecke.
Ich möchte kein leeres Formular speichern und den Benutzer darauf hinweisen das das Textfeld leer ist und demzufolge nicht abgeschickt werden kann. Oder das der Text kein Satzzeichen am Ende enthält. Ich möchte nur ganze Sätze in meiner Datenbank speichern. Der Satz sollte mindestens 3 Zeichen haben und ein Fragezeichen am Ende.
Hi,
wozu prüfst Du dann clientseitig?
Serverseitige Prüfung ist Pflicht, clientseitige (empfehlenswerte) Kür.Ich prüfe ob das Textfeld auch Text enthält und ob in dem Text ein Fragezeichen vorkommt. Denn das ist erforderlich für meine Zwecke.
Dann *musst* du das serverseitig ueberpruefen.
Dies nicht zu tun, waere bloedsinnig.
MfG ChrisB
Hello,
<head>
<SCRIPT LANGUAGE="JavaScript">
function checkForm()
{
}
//-->
</script>
</head>
Ob der Fehler eventuell in diesen Zeilen steckt?
Ein harzliches Glückauf
Tom vom Berg
<head>
<script type="text/javascript">
<!--
function checkForm()
{
//-->
</script>
</head>
Wäre es so besser?
Hello,
<head>
<script type="text/javascript"><!--
function checkForm()
{//-->
</script>
</head>Wäre es so besser?
in einem HTML-Dokument ja. Für neuere Browser sollten die Kommentarzeichen auch ganz entfallen dürfen.
Und funktioniert Deine Prüfung nun?
Ist denn dein JavaScript im Browser überhaupt eingeschaltet?
Du solltest aber auch Vinzenz' Einwurf ernst nehmen!
https://forum.selfhtml.org/?t=172935&m=1134246
Ein harzliches Glückauf
Tom vom Berg
Hello,
<head>
<script type="text/javascript"><!--
function checkForm()
{//-->
</script>
</head>Wäre es so besser?
in einem HTML-Dokument ja. Für neuere Browser sollten die Kommentarzeichen auch ganz entfallen dürfen.
Und funktioniert Deine Prüfung nun?
Ist denn dein JavaScript im Browser überhaupt eingeschaltet?
Nein es funktioniert nicht
Ja, Javascript ist eingeschaltet.
Ich habe ein PHP Dokument. vieleicht liegt da der Fehler?
Was müßte ich ändern wenn mein Dokument einen PHP code enthält?Reicht ein einfaches <?php ?> ?
Mahlzeit icheben,
Nein es funktioniert nicht
Wunderbar, welche Aussagekraft.
Ja, Javascript ist eingeschaltet.
Ich habe ein PHP Dokument. vieleicht liegt da der Fehler?
Nein. Ob es ein PHP-, ASP-, JSP- oder CF-Dokument ist, ist vollkommen irrelevant - das sind serverseitige Technologien, die irgendwie HTML erzeugen. Im Browser kommt lediglich HTML mit Javascript an. Javascript läuft clientseitig, das Problem ist ein clientseitiges ... wie genau kommst Du da auf PHP als Fehlerursache?
Was müßte ich ändern wenn mein Dokument einen PHP code enthält?Reicht ein einfaches <?php ?> ?
?
MfG,
EKKi
Hi,
In diesem Formular hab ich eine Feldüberprüfung mit Javascript eingebaut.
Das funktioniert nicht. Wo liegt der Fehler?
Zuerst mal in deiner "Problembeschreibung" - in den Tipps fuer Fragende, die gelesen zu haben du mit dem Posten hier bestaetigt hast, steht doch eindeutig drin, dass hier mit "funzt nicht"-Aussagen kaum einer was anfangen kann.
Und dann vielleicht in deinem JavaScript-Code - wenn du da einen Fehler drin hast, dann kommt's natuerlich gar nicht mehr zu einem return, so dass dein Formular auf jeden Fall abgeschickt wird - und dann kannst du natuerlich auch in der JS-Fehlerkonsole deines Browser nichts mehr diesbezueglich sehen, weil ja bereits eine neue Seite aufgerufen wurde.
Was macht halbwegs intelligenter Mensch also in so einer Situation?
Vielleicht erst mal die Prueffunktion ohne Abschicken des Formulars aufrufen - bspw. ueber Eingabe von
javascript:checkForm();
in der Adresszeile.
Und *dann* mal nach Fehlermeldungen schauen.
Und eventuell auch mal Debug-Ausgaben (alert) einbauen, die die Funktions-Abarbeitung nachvollziehbar machen ...
Also, leg' los.
MfG ChrisB