if - else - wie frage ab ob mind. eine Eingabe erfolgt ist?
Joachim Thiel
- javascript
Hallo!
ich möchte das Benutzer eine Fehlermeldung erhält, wenn er nicht mindestens ein Formularfeld von drei möglichen ausgefüllt hat.
Hier mein Ansatz der aber leider nicht funktionier )-:
im BODY-TAG:
<script language="JavaScript">
<!--
function pruefen() {
if(document.forms[0].elements[0].value == ""){
alert("Sie haben Ihren Namen nicht angegeben!");
}
else
{
if(document.forms[0].elements[1].value == "") {
alert("Sie haben Ihren Namen nicht angegeben!");
}
else
{ if(document.forms[0].elements[2].value == ""){
alert("Sie haben Ihren Namen nicht angegeben!");
}
else
{
}
}
//-->
</script>
<form name="formular1" action="search.php" method="post" enctype="text/plain" onSubmit="return pruefen()">
Ihr Name : <input type="text"name="name" tabindex="1" size="15" maxlength="25" value=""><br>
Ihr Alter : <input type="text"name="topcis" tabindex="2" size="2" maxlength="3" value=""><br>
<input type="text"name="fulltext" tabindex="2" size="2" maxlength="3" value="">
<input type="submit" value="Absenden" tabindex="3">
</form>
hallo Joachim,
ich möchte das Benutzer eine Fehlermeldung erhält
Hier mein Ansatz der aber leider nicht funktionier )-:
Naja, immerhin hast du es schonmal versucht.
im BODY-TAG:
Da gehört dein Script nicht hin. Das gehört in den Header-Bereich.
<script language="JavaScript">
<script type="text/javascript">
else
{
if
Mit "else if {" wäre es richtig.
if(document.forms[0].elements[0].value == ""){
{ if(document.forms[0].elements[1].value == "") {
{ if(document.forms[0].elements[2].value == ""){
dreimal soll dieselbe Fehlermeldung erscheinen (alert("Sie haben Ihren Namen nicht angegeben!");)? Wirklich?
<form name="formular1" action="search.php" method="post" enctype="text/plain" onSubmit="return pruefen()">
Das ist zwar prinzipiell so möglich - aber du benutzt für die "action" bereits ein PHP-Script. Warum läßt du dann die Fehlermeldung nicht von PHP ausgeben? Das ist deutlich einfacher, zumal die Javascript-Meldung unter Umständen die Ausführung deines PHP-Scripts nicht unterdrückt, was ja wohl angemessen wäre. Wie das ohne Javascript mit PHP ungefähr geht, kannst du dir unter http://www.christoph-schnauss.de/prog/php/php03.htm anschauen.
Grüße aus Berlin
Christoph S.
Danke @ all
will die Sche nochmal etwas ausbauen:
Mein Ziel ist halt das der Benutzer ein "alert" bekommt wenn er nicht min. ein Feld (mit mind. 3 Zeichen) ausgefüllt hat.
hier der html-Code für die Seite um die es geht:
Den PHP-Ansatz kann ich ganz guit nachvollziehen - nur verlässt der Benutzer die Seite extra - und das finde eher schlecht.
DANKE FÜR VORSCHLÄGE
MFG Joachim
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
</head>
<body>
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Neue Seite 4</title>
</head>
<body>
<form action="s2-new.php" name="formel" method="POST">
</form>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="440" id="AutoNumber1">
<tr>
<td width="64" style="border-style: none; border-width: medium">
<p align="right">search by:</td>
<td width="20" style="border-style: none; border-width: medium">
<input type="radio" name="b" value="name"
>
</td>
<td width="138" style="border-style: none; border-width: medium">Name:</td>
<td width="218" style="border-style: none; border-width: medium">
<input type="text" name="v_name" size="30" onclick="javascript:document.formel.b[0].click()"></td>
</tr>
<tr>
<td width="64" style="border-style: none; border-width: medium">
<p align="right">or:</td>
<td width="20" style="border-style: none; border-width: medium">
<input type="radio" name="b" value="topcis"
></td>
<td width="138" style="border-style: none; border-width: medium">Main
research topics</td>
<td width="218" style="border-style: none; border-width: medium">
<input type="text" name="v_topcis" size="30" onclick="javascript:document.formel.b[1].click()"></td>
</tr>
<tr>
<td width="64" style="border-style: none; border-width: medium">
<p align="right">or:</td>
<td width="20" style="border-style: none; border-width: medium">
<input type="radio" name="b" value="fulltext"
></td>
<td width="138" style="border-style: none; border-width: medium">full-text
search</td>
<td width="218" style="border-style: none; border-width: medium">
<input type="text" name="v_fulltext" size="30" onclick="javascript:document.formel.b[2].click()"></td>
</tr>
<tr>
<td width="64" style="border-style: none; border-width: medium"> </td>
<td width="20" style="border-style: none; border-width: medium"> </td>
<td width="138" style="border-style: none; border-width: medium"> </td>
<td width="218" style="border-style: none; border-width: medium">
<input type="submit" value="search" name="B1"></td>
</form>
</tr>
</table>
</body>
</html>
</body>
</html>
hallo Joachim,
will die Sche nochmal etwas ausbauen:
Das ist nicht zwingend erforderlich, weil:
Mein Ziel ist halt das der Benutzer ein "alert" bekommt wenn er nicht min. ein Feld (mit mind. 3 Zeichen) ausgefüllt hat.
Das hast du bereits in leicht verständlicher Form geschrieben.
Den PHP-Ansatz kann ich ganz guit nachvollziehen
Du meinst mein kleines, vorhin verlinktes Beispiel?
nur verlässt der Benutzer die Seite extra - und das finde eher schlecht.
In meinem Beispiel ist das der Fall, aber nichts zwingt dich, dem Beispiel Zeile für Zeile zu folgen. Nimm es einfach nur als Anregung und variiere nach Belieben.
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
</head>
<body><html>
<head>
Das hast du doch nicht wirklich so ins Netz gestellt, und das hier:
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
steht doch hoffentlich auch nicht online.
Und dann:
<form action="s2-new.php" name="formel" method="POST">
</form>
Was soll da passieren, in diesem völlig leeren Formular?
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="440" id="AutoNumber1">
Das ist eine ganz "typische" Übernahme einer Frontpage-generierten Tabelle. Du solltest sie schnellstmöglich korrigieren.
<input type="text" name="v_name" size="30" onclick="javascript:document.formel.b[0].click()">
Auch wieder Frontpage. Nach dem EventHandler "onclick" gehört ganz einfach kein "javascript:..." mehr hin, sondern lediglich die aufgerufene Scriptfunktion.
Und das hier schaust du dir auch nochmal an:
</body>
</html>
</body>
</html>
Es fehlte jetzt allerdings dein ganzer Javascript-Krimskrams.
Bitte überlege _ernsthaft_ ob zum Erreichen deines Ziels wirklich Javascript nötig ist. Ich meine, es ist nicht nötig.
Grüße aus Berlin
Christoph S.
Hallo,
Mein Ansatz:
1 boolesche Variable
3 IF Abfragen für die drei Formularfelder
Anpassung der booleschen Variablen
Gruß,
Henning