molily: Überprüfung von Formularfeld

Beitrag lesen

Hallo,

Nun habe ich durch onclick events ein Teil des Feldes versteckt. Es soll aber nur der angezeigte teil überprüft werden.

Das hast du schon grundsätzlich heraus: Speichere in einer globalen Variable, welcher Teil gerade angezeigt wird.

Am Anfang:
var angezeigterBereich = 1;

Dann in in der Funktion umschalten notierst du angezeigterBereich = 1 bzw. angezeigterBereich = 2. In der Funktion chkFormularHaupt fragst du die Variable ab.

Das tust du ja schon im Grunde (bei dir heißt die Variable radio_value):

function chkFormularHaupt () {
  if (radio_value=="1") {

Das Problem ist, dass radio_value hier nicht verfügbar ist, weil es eine lokale Variable aus der Funktion umschalten ist, die nach deren Ausführung verfällt. Du musst sie http://de.selfhtml.org/javascript/sprache/variablen.htm#definieren@title=global deklarieren.

<style type="text/css">
<!--
.Stil1 {
color: #800000;
font-weight: bold;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
body {
background-color: #D5E3D2;
}
.Stil3 {font-family: Verdana, Arial, Helvetica, sans-serif}
.Stil5 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; }
.Stil7 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; color: #990000; }
-->
</style>

CSS hast du anscheinend noch nicht richtig verstanden. Der Sinn von CSS ist die Verwendung von passenden HTML-Elementen und deren effiziente Formatierung sowie die Vererbung von Formatierungen. Du kennst offenbar nur die Klassen-Selektoren. Klassen brauchst du in deinem Beispielcode aber gar nicht. Das geht viel einfacher! Soviel Arbeit musst du dir gar nicht machen.

<p align="center" class="Stil1">Bestellung von Zeitungsexemplaren über das Zeitungslager</p>

Das ist eine Überschrift, die du mit h1 auszeichnen könntest.

<p align="center" class="Stil1"><em>Auswahl der Anforderung</em></p>

Hier eine h2

<input type="radio" name="schalter" value="1" onClick="umschalten(1)" checked> <font face="Verdana, Arial, Helvetica, sans-serif"><strong>Bestellung für Kunden (hausextern)</strong></font>

font-Elemente sind so 1995! Wirf sie heraus und formatiere den Text mit Stylesheets.

<td><label><span class="Stil3">Besteller</span>
        <input type="text" name="Besteller" id="Besteller" />
      </label></td>

Anstatt <span class="Stil3"> kannst du einfach das label-Element im CSS formatieren.

<p>&nbsp;</p>
  <p>&nbsp;</p>

Abstände werden in CSS mit der Eigenschaft margin gelöst.

<label><span class="Stil5">Bestellung für Kunden</span><br />
  <br />
  </label>

Das ist kein Label - sondern schon wieder eine Überschrift.

<label><span class="Stil5">Bestellung für Mitarbeiter</span><br />
  <br />
  </label>

Dito.

<td width="144"><span class="Stil3">Empfänger</span>
      <input type="text" name="Empfänger" id="Empfänger" /></td>
      <td width="144"><span class="Stil3">Hauptabteilung</span>
      <input type="text" name="Hauptabteilung" id="Hauptabteilung" /></td>
      <td width="144"><span class="Stil3">Unterabteilung</span>
      <input type="text" name="Unterabteilung" id="Unterabteilung" /></td>
      <td width="144"><span class="Stil3">Gebäude</span>
      <input type="text" name="Gebäude" id="Gebäude" /></td>
      <td width="144"><span class="Stil3">Raumnummer</span>
      <input type="text" name="Raumnummer" id="Raumnummer" /></td>

Die ganzen spans mit Stil3 sind überflüssig. Das lässt sich alles über ein paar zentrale CSS-Formatierungsregeln mit passenden Selektoren erschlagen. Damit sparst du dir Unmengen an Tipparbeit, der Code wird aufgeräumter und du kannst die Formatierung zentral ausgelagern und einfach ändern.

<p>&nbsp;</p>
  <label><br />
  </label>
  <label></label>

Das ist anscheinend Codemüll.

</div>

</pre>

pre??

<h4 align="justify" class="Stil1"> <em>Auswahl der benötigten Exemplare</em></h4>

Immerhin, eine Überschrift, wenn auch h4 dort nicht passt. Wenn ich mir dein Dokument so anschaue, gibt es eher viele Überschriften zweiter Ordnung.

h4 heißt Überschrift vierter Ordnung (das schließt ein: es gibt auch Überschriften erster, zweiter und dritter Ordnung) und bedeutet nicht die Schriftgröße. Die sollte per CSS gesetzt werden (font-size), genauso wie align=justify und em sind hier auch fehl am Platze.

Mathias