S.Fäßler: Formulare, Eingaben erzwingen

Hallo!
Ich habe ein Formular, dass an eine JSP Seite einen SuchText und ein Kriterium übergibt, jetzt möchte ich einrichten, dass er auf keinen Fall auf die Datenbank springt, wenn das SuchTextFeld leer ist.
Jemand eine Idee wie ich das lösen kann?

Mfg
S.Fäßler

----

<form action="./db.jsp" method="post">
<font><b>Suche nach</b></font><br>
<input type="text" name="suchText" size="30" value="" style="background:'#99CCFF'">
<br>
Geben Sie hier den gewünschten Suchtext ein, natürlich können Sie auch nach Teilen suchen, <br>
suchen Sie beispielsweise einen Kunden mit dem Namen Winkelhuber, reicht es, wenn Sie nach <br>
dem Begriff "Winkel" suchen, allerdings erhalten Sie eventuell auch Namen wie Winkelmann <br>
oder ähnliche, die mit Winkel beginnen. <br>
<b>Info: </b> Wenn Sie das Feld leer lassen, bekommen Sie alle verfügbaren Datensätze angezeigt!
<br>
<br>
<br>
<font><b>Suchkriterium</b></font>
<br>
<select name="kriterium" size="1" style="background:'#99CCFF'">
 <option value="0">Alle</option>
 <option value="1">Nach Vorgang</option>
 <option value="2">Nach Datum</option>
 <option value="3">Nach Bericht bis</option>
 <option value="4">Nach Proj.Nr.</option>
 <option value="5">Nach Ang.Nr.</option>
 <option value="6">Nach A.-Partner</option>
 <option value="7">Nach Kunde</option>
 <option value="8">Nach Kommentar                         </option>
 <option value="9">Nach Bemerkung</option>
</select>
<br>
Wählen Sie in diesem Feld aus, nach welchen Kriterien Sie die Datenbank durchsuchen möchten. <br>
Zur Auswahl stehen u.a. Suchen nach einem bestimmten Vorgang, Suchen nach einem bestimmtem <br>
Kunden, oder beispielsweise das Suchen nach einer Angebotsnummer. <br>
<br>
<br>

<table border="0">
<tr>
<td>
<button name="Submit" type="submit" value="Suchen"><img src="images/suchen.gif" border="0">  Suchen</button>
</td>

<td>
<button name="reset" type="reset" value="Zurücksetzen"><img src="images/papierkorb.gif" border="0">  Zurücksetzen</button>
</td>
</tr>
</table>
</form>

  1. Hallo S.,

    Bau Dir in deiner Formularseite eine JS-Funktion, die den Inhalt des Textfeldes
    abprüft und wenn das Feld leer ist, false zurückliefert, ansonsten jedoch true.

    Diese Funktion rufst du durch ein onSubmit im Suchen-Button-Tag auf.

    Dadurch wird schon das Abschicken verhindert. Du müßtest jedoch deinem Formular auch einen Namen geben.

    Gruß Ralf

    1. Moin Moin !

      Sorry, das ist falsch! Client-seitige Überprüfungen kann man aushebeln, im einfachsten Fall durch Abschalten von Javascript.

      Sorry, daß ich jetzt mal kurz brülle, ist mehr fürs Archiv und weniger gegen Dich:

      TRAUE NIEMALS, NIE, NIE, NIE DEM CLIENT IN EINER CLIENT-SERVER-ANWENDUNG!!!

      Alexander

      --
      Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
      Für eine bessere Übersichtsdarstellung des Forums: http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2
  2. Moin Moin !

    Dein Problem löst Du mit einem simplen "if"-Statement auf der Server-Seite.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    Für eine bessere Übersichtsdarstellung des Forums: http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2
  3. Probier mal folgendes:

    <form action="./db.jsp" method="post" onsubmit="if(this.suchText.value='')return false">

    Das müsste eigentlich funktionieren

    1. <form action="./db.jsp" method="post" onsubmit="if this.suchText.value=='')return false">

      Sry, hab das zweite "==" vergessen. So wies jetzt oben steht funktioniert es!

      1. Funktioniert leider nicht :(
        Er öffnet trotzdem die db.jsp :(

        1. Moin Moin !

          Funktioniert leider nicht :(
          Er öffnet trotzdem die db.jsp :(

          Das würde bei einem manipuliertem Formular oder evtl. auch bei einem Browser ohne/mit abgeschaltetem Javascript passieren. Du mußt auf der Server-Seite prüfen, ob die Daten in Ordnung sind, soll heißen: in db.jsp! Siehe [pref:t=39679&m=217463] und [pref:t=39679&m=217461]. Auf der Client-Seite eine zusätzliche Prüfung einzubauen ist Luxus, der versehentliche Falscheingaben vermeidet. Es hilft aber nicht gegen absichtliche Falscheingaben!

          Alexander

          --
          Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
          Für eine bessere Übersichtsdarstellung des Forums: http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2