Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Prüfen von Feldern vor Submit mit JavaScript

Empfohlene Antworten

Veröffentlicht

Hallo, hab ein (kleines) Problem mit JavaScript.

Ich hab eine Seite, auf der ich 2 Formulare hab. Das Erste Formular oben enthält 4 Eingabefelder, von denen 3 ausgefüllt werden müssen. Im zweiten Formular wird eine Liste mit bisher gewählten Daten in einer Tabelle angezeigt werden. In der Tabelle kann man über Checkboxen einzelne Zeilen wählen und diese dann löschen. Ich hab also 2 Actions, einmal Senden und einmal löschen. Deswegen auch die 2 Formulare.

Das erste Formular hat selber keinen Submit-Button, der Button der das Submit auslöst befindet sich im 2ten Formular und wird per OnClick gesteuert.

Das funktioniert auch wunderbar, nur bekomme ich es nicht hin, das die Inhalte der Felder geprüft werden.

Hier mal die Seite (teilweise):



[...]

<script type="text/javascript" src="BALScripts.js"></script> 

</head>

<body>

[...]


  <td>

[COLOR=RED][b][i]

  <form name="senden" method="post" action="send.php" onSubmit="return CheckBestellung()"></td>

[/i][/b][/COLOR]

  <td>Feld1: <input type="text" size="7" maxlength="8" name="Field1">  Feld2: <input type="text" size="7" maxlength="8" name="Field2">

  Field3: 

  <input type="text" size="8" maxlength="10" name="Field3"></td>

  </tr>

  <TR><td></td><td></td><td>Bemerkung:</td></TR>

  <tr><td></td><td></td><td><textarea name="Bemerkung" cols="56" rows="3"></textarea></form></td></tr>

  </form>

<tr>


  <td>  <form method="post" name="bestellung" action="clearsel.php"></td>

  <td></td>

  <td><hr></td>

  </tr>

  <tr>

  <td> </td>

 <td></td>

  <td><h4>Bestellung:</h4></td>

  </tr>

  <tr><td> </td><td> </td>

  <td>

  <table border="0">

  <colgroup>

    <col width="25">

    <col width="75">

    <col width="475">

    <col width="75">

  <colgroup>

  <tr><th style="text-align: center; background-color:#999999"></th><th style="text-align: center; background-color:#999999">BAL-Nr.</th><th style="text-align: center; background-color:#999999">Bezeichnung</th><th style="text-align: center; background-color:#999999">Anzahl</th></tr>


 <?php 

$LineNr=0;

$BGCols = array('#DDDDDD', '#FFFFFF');


if (@mysql_connect($DBHost, $DBUser, $DBPass))

{

  if (@mysql_select_db($DBName))

  {

    foreach($_SESSION as $BAL => $Anzahl)

    {

      if ($Anzahl != 'xxx')

      {

        //echo "BAL $BAL - Anzahl: $Anzahl<br>";

        $result = mysql_query("SELECT Bezeichnung FROM ba_details WHERE BALNummer = '$BAL'");

        $row = mysql_fetch_row($result);

        echo " <tr><td><input type=\"checkbox\" name=\"delete[]\" value=\"$BAL\"></td>";

        echo "<td style=\"background-color:$BGCols[$LineNr]; text-align: center\">$BAL</td><td style=\"background-color:$BGCols[$LineNr]; text-align: left\">$row[0]</td><td style=\"background-color:$BGCols[$LineNr]; text-align: right\">$Anzahl</td></tr>\n";

        $LineNr++;

        if ($LineNr > 1)

          $LineNr = 0;

      } // if != 'xxx'

    } // foreach


  } // mysql_select_db

} // mysql_connect


?>


<tr>

<td> </td>

</tr>

<tr>

<td> </td>

</tr>

<tr>

<td></td><td></td><td>

<input type="submit" name="clear" value="Auswahl löschen">

  

<input type="button" name="ClearAll" value="alle löschen" onClick="self.location.href='clearbest.php'">

  

[COLOR=RED][b][i]

<input type="button" name="send" value="abschicken" onClick="document.senden.submit()" />

[/i][/b][/COLOR]

</form>


</td><td></td>

</tr>


</table>

</td>

</form>

Hier noch das Script:

function CheckBestellung()

{

  var isEmptyField1, isEmptyField2, isEmptyField3, EmptyField;

  alert("Bestellung prüfen");

  isEmptyField1 = (this.document.senden.Field1.value == "");


  isEmptyField2 = (this.document.senden.Field2.value == "");


  isEmptyField3 = (this.document.senden.Field3.value == "");


  EmptyField = (isEmptyField1 || isEmptyField2 || isEmptyField3);

  /*

  if (EmptyField)

  {

    alert(Felder müssen gefüllt werden!);

  }

  else

  {

    this.document.senden.submit();

  }*/

  return !EmptyField;


}

wie man am auskommentierten Teil sehen kann hab ichz es auch schon durch direktes aufrufen des Scripts bei onClick probiert... es tut sich nichts. Nichtmal das alert am anfang der Function kommt.

Hat jemand hier eine Idee woran das liegen kann?

Danke

haste die javascript datei in die html datein eingebunden?

Ja, siehe oben in der HTML Datei:

<script type="text/javascript" src="BALScripts.js"></script>

andere funktionen in deiner JS datei kannst du aber aufrufen?

Nein. Ging auch nicht. Eine Testfunktion im Body OnLoad wurde nicht ausgeführt. Diese Testfunktion in der Datei ging dann. Allerdings nicht die Funktion zum prüfen der Eingaben. Die ging weder intern noch extern.

was sagt den die js-konsole ?

gruss

Auf die konsole bin ich garnich gekommen ;) Naja, für den ersten Tag...

Ok, damit hab ich schon ein paar ungereimtheiten gefunden... aber, bei meinem eigentlichen PRoblem hilft es mir nix.

Hatte die JS-Datei über einen Verweis eingebunden und die Kosole bleib still. Es geschah aber auch nix (alert). Dann hab ich die Funktion mit in die Datei genommen und den Link zur externen auskommentiert und immernochnix. Weder in der Konsole, noch passiert irgendwas. Hab die Testfunktion nicht übernommen und deswegen mekert er immer rum, also ich merke er tut noch was (in der Konsole), allerdings nich das was er soll.

Fragt mich nicht warum, aber es geht jetzt. Hab es ja probiert über den Submit aufruf bei onClick und dann die Prüfung bei onSubmit. Davor hab ich die Funktion bei OnClick aufgerufen.

Das wollt ich nochmal mit der Konsole probieren... und jetzt geht es, egal ob die Funktion in einer Externen Datei ist oder nicht... keine Ahnung warum... Proxy? der sollte eigentlich hier lokal nicht aktiv sein und ausserdem hab ich mehr als einmal Reeload gemacht... egal, danke für die Tips.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.