Der Martin: Werte aus PHP im HTML per Script auswerten

Beitrag lesen

Hallo,

<tr>
       <td><label id="Telefon_Text" for="Formular_Telefon">Telefon</label></td>
       <td><p class="Formular-Checkboxen_Tabelle"><input class="Formular-Eingabefeld" type="text" id="Formular_Telefon" name="Telefon" maxlength="50"></p></td>
      </tr>
      <tr>
       <td><label class="Formular-Standarttext" id="erreichbar_Text">Telefonisch</label></td>
       <td colspan="6">
        <p class="Formular-Standarttext">am besten erreichbar zwischen
         <select onfocus="javascript:erreichbar();" id="Formular_erreichbar_von" name="erreichbar_von">
          <option value="07:00 Uhr">07:00 Uhr</option>
          <option value="08:00 Uhr">08:00 Uhr</option>
         </select>
          und
         <select id="Formular_erreichbar_bis" name="erreichbar_bis">
          <option value="08:00 Uhr">08:00 Uhr</option>
          <option value="09:00 Uhr">09:00 Uhr</option>
         </select>
        </p>
       </td>
      </tr>

bevor ich auf die Fragen eingehe:
1. Den wiederholt auftretenden Rechtschreibfehler möchtest du noch korrigieren, oder?
2. Das Label "javascript:" in einem Eventhandler ist völlig zweckfrei und ohne Aufpreis auch
   entnehmbar (frei nach Loriot).
3. Gibt es einen Grund, zusätzlich zum name-Attribut ein gleichlautendes id-Attribut zu vergeben?

Ich möchte, dass beiden <select> Felder so lange disabled bleiben, bis der Besucher einen Wert (eine Telefonnummer) in das Feld name="Telefon" eingibt.

das habe ich probiert so zu lösen

function erreichbar() {
if (document.Kontakt_Formular.Formular_Telefon.value == '') {
document.Kontakt_Formular.Formular_erreichbar_von.disabled = true;
  } else {
document.Kontakt_Formular.Formular_erreichbar_von.disabled = false;
}

Die Funktion könnte wesentlich einfacher und damit automatisch leichter lesbar formuliert sein:

document.Kontakt_Formular.Formular_erreichbar_von.disabled = (document.Kontakt_Formular.Formular_Telefon.value=='');

funktioniert aber leider nicht. Ich weiß, dass so lange nichts passiert, das Feld auch nicht deaktiviert werden kann, aber ich weiß nicht, wie ich diese Problem lösen kann.

Du musst natürlich dafür sorgen, dass diese Funktion auch immer aufgerufen wird, wenn sich der Inhalt des Textfelds ändert. Der onchange-Eventhandler wäre eine Möglichkeit, der onkeypress-Handler eine weitere.

wenn der Benutzer z.B. im Feld name="erreichbar_von" 9:00 auswählt, möchte ich, dass im Feld name="erreichbar_bis" mindestens ein Wert höher automatisch eingestellt wird, also 10:00. Und am besten die Werte darunter auf disabled gesetzt werden.

Das bekommst du sicher nicht über ein schematisches Vorgehen, weil dazu die Textinhalte der select-Elemente interpretiert werden müssten.

So long,
 Martin

--
Computer lösen für uns Probleme, die wir ohne sie gar nicht hätten.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(