• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Probleme beim überprüfen von Textfeldern

black_sirius

Neues Mitglied
Hallo Zusammen,

ich versuche zur Zeit einen Lieferschein als HTML/PHP dokument zu Digitalisieren.
Als ersten schritt erstelle ich ein Eingabeformular und dort habe ich leider ein Problem mit dem ich nicht weiter komme... dazu muss ich sagen das ich nur geringe Fachkenntnisse in PHP und HTML habe.

Zum einen habe ich versucht eine Tabelle zu erstellen mit verschieden großen Spalten und Zeilen dies lies sich leider nicht machen weshalb ich es in 12 einzelne Tabellen gesplittet habe was aber nicht die beste Lösung ist evtl. weis ja einer wie man das besser machen kann.

Zum Hauptproblem:
und Zwar möchte ich die Texteingabefelder überprüfen dazu habe ich aus Self HTML einen Lösungsvorschlag benutzt mitdem z.B. Feld "buyer" überprüft wird ob es leer ist. falls ja soll eine Fehlermeldung angezeigt werden. doch leider wird sofort die folgedatei des Formulars geladen also kommt der stopp befehl beim senden des Formulars scheinbar nicht an.

hier der Code:

Code:
<html>
<head>
<title>Lieferschein</title>
<STYLE type="text/css">

TD {
font-family: verdana;
font-size: medium;
}

</STYLE>
<script type="text/javascript">
function chkFormular () {
  if (document.Formular.buyer.value == "") {
    alert("Bitte füllen sie das fällt Auftraggeber aus!");
    document.Formular.buyer.focus();
    return false;
  }
  if (document.Formular.Ort.value == "") {
    alert("Bitte Ihren Wohnort eingeben!");
    document.Formular.Ort.focus();
    return false;
  }
  if (document.Formular.Mail.value == "") {
    alert("Bitte Ihre E-Mail-Adresse eingeben!");
    document.Formular.Mail.focus();
    return false;
  }
  if (document.Formular.Mail.value.indexOf("@") == -1) {
    alert("Keine E-Mail-Adresse!");
    document.Formular.Mail.focus();
    return false;
  }
  if (document.Formular.Alter.value == "") {
    alert("Bitte Ihr Alter eingeben!");
    document.Formular.Alter.focus();
    return false;
  }
  var chkZ = 1;
  for (i = 0; i < document.Formular.Alter.value.length; ++i)
    if (document.Formular.Alter.value.charAt(i) < "0" || document.Formular.Alter.value.charAt(i) > "9")
      chkZ = -1;
  if (chkZ == -1) {
    alert("Altersangabe keine Zahl!");
    document.Formular.Alter.focus();
    return false;
  }
}
</script>

</head>
<body>

<!--   Tabelle 1     -->
<br><br>
<form name="Formular" action="eingabe.php" method="post" onsubmit="return chkFormular()">

<table border="0" cellspacing="0">
  <colgroup>
    <col width="480">
    <col width="480">
  </colgroup>
  <tr>
    <td><font size="-1">Unsere Firma</font><br><br>
       Auftraggeber / <i>Buyer</i>:
        <p align="left"><textarea name="buyer" cols="30" rows="3"></textarea><br><br></td></p>
    <td><b>Lieferschein / <i>Delivery Note</i></b><br><br>
        <b>Nr. <i>No.:</i></b>
        <input type="text" name="lieferschein" ></td>
  </tr>
 </table>

<!--   Tabelle 2     -->
 <table border="0" cellspacing="0">
  <colgroup>
    <col width="480">
    <col width="480">
    </colgroup>
  <tr>
    <td>*</td>
    <td><b>Versandanschrift / <i>Forwarding Address:</i></b></td></tr>
 </table>

<!--   Tabelle 3     -->
 <table border="0" cellspacing="0">
  <colgroup>
    <col width="320">
    <col width="273">
    <col width="367">
  </colgroup>
  <tr>
    <td> Rechnungsempfänger / <i>invoice Recipient</i>:

        <p align="left"><textarea name="buyer" cols="30" rows="3"></textarea><br><br></td></p>
   <td><font size="+1">
      <p align="right">  Firma:<br>
              Herr/Frau:<br>
              Tel.:<br>
              Straße:<br>
              PLZ/Ort:<br>
              Land/Staat:<br></p>

  </font></td>
 <td>
      <input type="text" name="firma" ><br>
      <input type="text" name="anrede" ><br>
      <input type="text" name="telfirm" ><br>
      <input type="text" name="straße" ><br>
      <input type="text" name="plz" ><br>
      <input type="text" name="land" ><br>
 </td>

   </tr>
 </table>



<!--   Tabelle 4     -->

<table border="1" cellspacing="0">
  <colgroup>
    <col width="480">
    <col width="480">
  </colgroup>
  <tr>
    <td>Ihre Bestellung:<br>
        Your Order / Ref. :
        <input type="text" name="bestellung" ></td>
    <td>Auftrags-Nr.:<br>
        Our Order No.:
        <input type="text" name="auNr" ></td>
  </tr>
</table>




<br><br>

<input type="Submit" value="Absenden" onClick="top.location.href=this.form.list.options[this.form.list.selectedIndex] .value"
onClick="top.location.href=this.form.list.options[this.form.list.selectedIndex] .value">
</font>
</form>
</body></html>
dazu muss ich sagen das es funktioniert solange ich nur tabelle 1 nehme, füge ich die anderen wieder hinzu klappt dies nicht mehr aber warum ?
 
Zuletzt bearbeitet:
Weil Du mehrere Felder mit Namen "buyer" hast. Verwende für jedes Feld einen eigenen Namen.
 
Ok danke das hat funktioniert, wie dumm das ich das übersehen habe... hatte extra eine Dokumentation mit den Variablen und Feldnamen erstellt aber naja...^^

1. und zwar habe ich an die 20 eingabefelder im Formular und alle sollen als Pflicht ausgefüllt werden. Aber auf die Art wie ich das oben mache bekomme ich für jedes fällt einzelnd eine Fehlermeldung was bei der Anzahl sehr unschön ist. Ist es z.B. auch möglich alle felder Rot anzeigen zu lassen die nicht korrekt ausgefüllt wurden ? und wenn ja wie ?

2. Bei der Ausgabe des Formulares verwende ich die gleichen Tabellen und habe einfach nur das input type="text" durch die Variable ersetzt.
Aber bei input type="textarea" bekomme ich dabei leider die Daten nicht so angezeigt wie ich sie eingegeben habe sprich untereinander z.B. wie kann ich das so ausgeben wie ich das eingebe ?
 
Zuletzt bearbeitet:
Indem du keine Fehlermeldung ausgibst, sondern stattdessen dem entsprechenden Eingabeelement dynamisch eine CSS-Klasse „error“ oder so setzt.
 
Da ich davon nicht viel verstehe habe ich den mir einfacherern lösungsvorschlag eines Kumpels genommen. Gestern abend gab er mir eine fehlermeldung und schickte das Formular nicht weiter doch heute macht er das nicht mehr ich weis nicht was ich falsch gemacht habe und verzweifel so langsam eigentlich sollte das so wie es hier steht funktionieren doch er ignoriert das und schickt das formular immer ab

Code:
<html>
<head>
<title>Lieferschein</title>
<STYLE type="text/css">

TD {
font-family: verdana;
font-size: medium;
}

</STYLE>
<script type="text/javascript">
 funktion chkFormular(){
 result = true;
 /* Tabelle 1 */
 if(document.eingabeformular.buyer.value == ""){result = false;}
 if(document.eingabeformular.lieferschein.value == ""){result = false;}

 if(result == false){alert("Bitte füllen Sie "alle" Felder aus!")}  return result; }


</script>

</head>
<body>

<!--   Tabelle 1     -->
<br><br>
<form name="Formular" action="eingabe.php" method="post" onsubmit="return chkFormular()">

<table border="0" cellspacing="0">
  <colgroup>
    <col width="480">
    <col width="480">
  </colgroup>
  <tr>
    <td><font size="-1">Unsere Firma</font><br><br>
       Auftraggeber / <i>Buyer</i>:
        <p align="left"><textarea name="buyer" cols="30" rows="3"></textarea><br><br></td></p>
    <td><b>Lieferschein / <i>Delivery Note</i></b><br><br>
        <b>Nr. <i>No.:</i></b>
        <input type="text" name="lieferschein" ></td>
  </tr>
 </table>

<br><br>

<input type="Submit" value="Absenden" onClick="top.location.href=this.form.list.options[this.form.list.selectedIndex] .value"
onClick="top.location.href=this.form.list.options[this.form.list.selectedIndex] .value">
</form>
</body></html>
 
In deiner function (nicht „funktion“) hast du einige kleinere Fehler.

Code:
<script type="text/javascript">
function chkFormular()
{
    var result = true;
    
    /* Tabelle 1 */
    if (document.eingabeformular.buyer.value        == "") { result = false; }
    if (document.eingabeformular.lieferschein.value == "") { result = false; }

    if (result == false) {
        alert("Bitte füllen Sie \"alle\" Felder aus!");
    }
 
    return result;
}
</script>

Wozu die onclick-Handler beim Submit-Button?

Nutze insgesamt bitte die JavaScript-Fehlerkonsole deines Browsers oder eine spezielle Debug-Erweiterung wie Firebug (für Firefox).
 
Wozu die onclick-Handler beim Submit-Button?

Nutze insgesamt bitte die JavaScript-Fehlerkonsole deines Browsers oder eine spezielle Debug-Erweiterung wie Firebug (für Firefox).

Danke für deine Hilfe :)

Ach misst ich dachte mir schon das es sowas banales ist... wie gesagt ich bin einsteiger und wusste um ehrlich zu sein nichts von einer Javascript fehlerkonsole aber ich probiere es mal aus danke :)

ich weis gar nicht mehr wofür die onclick-Handler waren. Ich hatte sie bei irgendwas mal eingefügt habe ein wenig rumprobiert ich versuchs mal ob es auch ohne geht.

EDIT: jetzt funkitoniert das mit dem Javascript auch :) hab die Fehlerkonsole gefunden die Hilft mir echt weiter so weis ich auch was daran falsch ist danke :)
 
Zuletzt bearbeitet:
Zurück
Oben