Chris: Formularfeld ausgrauen

Hallo zusammen.

Wenn ich zwei formularfelder nebeneinander habe, möchte ich, dass wenn in dem linken angefangen zu schreiben wird, dass das rechte formularfelder ausgegraut wird. (Bzw. andersrum) Ist das irgendwie möglich mit "if" oder so?

Danke

  1. Hallo,

    Wenn ich zwei formularfelder nebeneinander habe, möchte ich, dass wenn in dem linken angefangen zu schreiben wird, dass das rechte formularfelder ausgegraut wird.

    Mit PHP ist das selbstverständlich so nicht möglich, da ja das PHP-Script in
    dem Moment, in dem der Besucher die Seite sieht, ja schon beendet ist.

    Da brauchst du schon Javascript für. Du könntest in dem einen Formularfeld bei
    'onchange' eine Funktion aufrufen, die das andere Feld auf 'disabled' setzt.

    Das könnte vielleicht so ähnlich aussehen (nicht getestet):

      
    function disable_element(elm_id) {  
      elm = document.getElementById(elm_id);  
      elm.setAttribute(disabled,"disabled");  
    }  
    
    
      
    <input type="text" onchange="disable_element('xyz');" />  
    <input type="text" id="xyz" />  
    
    

    Gruß, Jan

    1. Das könnte vielleicht so ähnlich aussehen (nicht getestet):

      function disable_element(elm_id) {
        elm = document.getElementById(elm_id);
        elm.setAttribute(disabled,"disabled");
      }

      
      >   
      > ~~~html
        
      
      > <input type="text" onchange="disable_element('xyz');" />  
      > <input type="text" id="xyz" />  
      > 
      
      

      Gruß, Jan

      Danke Dir erstmal. Das hier müsste doch in den Head-bereich oder?
      habe es jetzt vor <?php gesetzt, aber das funktioniert nicht:

      <head>
      <script type="text/javascript">
      function disable_element(elm_id) {
        elm = document.getElementById(elm_id);
        elm.setAttribute(disabled,"disabled");
      }
      </script>
      </head>

    2. Hallo,

      Ähm, hier fehlen natürlich die Anführungszeich um das erste 'disabled'.
      Richtig wäre:

      function disable_element(elm_id) {
        elm = document.getElementById(elm_id);
        elm.setAttribute("disabled","disabled");
      }

        
      Wenn du eigentlich meintest, daß das zweite Eigabefeld nur ausgegraut sein  
      soll, wenn das erste nicht leer ist (nicht, wenn man darin irgendwas ändert,  
      denn man kann beim Ändern ja auch Eingaben löschen), wäre wohl folgendes  
      besser:  
        
      ~~~javascript
        
      function disable_element(src_elm,elm_id) {  
        elm = document.getElementById(elm_id);  
        if (src_elm.value != "") {  
          elm.setAttribute("disabled","disabled");  
        }  
        else {  
          elm.removeAttribute("disabled");  
        }  
      }  
      
      
        
      <input type="text" onchange="disable_element(this,'xyz');" />  
      <input type="text" id="xyz"  />  
      
      

      Gruß, Jan

      1. Wenn du eigentlich meintest, daß das zweite Eigabefeld nur ausgegraut sein
        soll, wenn das erste nicht leer ist (nicht, wenn man darin irgendwas ändert,
        denn man kann beim Ändern ja auch Eingaben löschen), wäre wohl folgendes
        besser:

        function disable_element(src_elm,elm_id) {
          elm = document.getElementById(elm_id);
          if (src_elm.value != "") {
            elm.setAttribute("disabled","disabled");
          }
          else {
            elm.removeAttribute("disabled");
          }
        }

        
        >   
        > ~~~html
          
        
        > <input type="text" onchange="disable_element(this,'xyz');" />  
        > <input type="text" id="xyz"  />  
        > 
        
        

        Gruß, Jan

        Danke!!! So funktioniert es jetzt!