Mssmar: setAttribute()

Guetn Abend,

versteht der IE folgende Anweisung nicht?:

  
   var mailAdress = document.getElementById('uuu');  
   mailAdress.name ='adresse';  
[/cdoe]  
  
Ich erhalte bei dem Aufruf der Funktion folgende Fehlermeldung:  
"fnm.value ist Null oder kein Object"  
  
Bei Firefox funkz. einwandfrei.  
  
Danke und Gruß  
Messmar  
  
[code lang=html]  
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  
<html>  
<head>  
 <title>Untitled</title>  
  
<script type="text/javascript">  
  
 function checkForm(formObj){  
  
  alert(formObj);  
  
  
  var checkBox1 = document.getElementById('pflicht_1');  
  var checkBox2 = document.getElementById('pflicht_2');  
  
  var myName = document.getElementById('xxx');  
  var myNachname = document.getElementById('yyy');  
  
  var mailAdress = document.getElementById('uuu');  
  var title = document.getElementById('bbb');  
  
  if(checkBox1.checked){  
  
   myName.name ='fnm';  
   myNachname.name = 'lnm';  
  
   var firstNm_1 = formObj.fnm.value;  
   var lastNm_1 = formObj.lnm.value;  
  
   if(!firstNm_1){  
    alert('Bitte geben Sie Ihren Vornamen an');  
    return false;  
   }  
   if(!lastNm_1){  
    alert('Bitte geben Sie Ihren Nachnamen an');  
    return false;  
   }  
  }else if(checkBox2.checked){  
  
   mailAdress.name ='adresse';  
   title.name = 'manfrau';  
  
   var getAdress = formObj.adresse.value;  
   var getTitle = formObj.manfrau.value;  
  
   if(!getAdress){  
    alert('Bitte geben Sie Ihre Email-Adresse an');  
    return false;  
   }  
   if(!getTitle){  
    alert('Bitte geben Sie Ihr Geschlecht an');  
    return false;  
   }  
  }  
  return true;  
 }  
</script>  
</head>  
  
<body>  
  
  
  
<form name="form_1" action="action.htm" id="form_1" onsubmit="return checkForm(this);">  
 <fieldset style="width:400px; text-align:center; border:1px solid green;">  
  VorName 1<input type="text"  value="" id="xxx" size="40">  
  <br><br>  
  LastName 1<input type="text" value="" id="yyy" size="40">  
 </fieldset>  
 <br><br><br>  
 <fieldset style="width:400px; text-align:center; border:1px solid #003388;">  
  VornName 2<input type="text" value="" id="uuu" size="40">  
  <br><br>  
  LastName 2<input type="text" value="" id="bbb" size="40">  
 </fieldset>  
 <br><br><br>  
 <input type="checkbox" name="pflicht_1" id="pflicht_1" value=""> Newsletter 1  
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
 <input type="checkbox" name="pflicht_2" id="pflicht_2" value=""> Newsletter 2  
 <br><br><br>  
 <input type="submit" value="Senden" style="width:100px;">  
</form>  
  
  
</body>  
</html>  

  1. Guetn Abend,

    [...]

    Ich erhalte bei dem Aufruf der Funktion folgende Fehlermeldung:
    "fnm.value ist Null oder kein Object"

    FYI: Ich habe jetzt herausgefuden, dass das eine Laufzeitfehler ist, da ich auf das für IE noch nicht vorhandenes Ojekt bzw. form-Element: fnm versuche zu zugreifen.

    Eigentlich kann man sowas mit Try/Catch abfangen. Ich wußte aber nicht, wie ich das mittel Try and Catch am besten machen könnte.

    Hat Jemand einen Tipp?

    Danke und Gruß
    Messmar

  2. versteht der IE folgende Anweisung nicht?:

    [code lang=javascript]
       var mailAdress = document.getElementById('uuu');
       mailAdress.name ='adresse';
    [/cdoe]

    doch.

    Ich erhalte bei dem Aufruf der Funktion folgende Fehlermeldung:
    "fnm.value ist Null oder kein Object"

    das objekt existiert in deinem Beispiel nicht.

    Bei Firefox funkz. einwandfrei.

    Danke und Gruß
    Messmar

    [code lang=html]
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>
    <head>
    <title>Untitled</title>

    <script type="text/javascript">

    function checkForm(formObj){

    alert(formObj);

    var checkBox1 = document.getElementById('pflicht_1');
      var checkBox2 = document.getElementById('pflicht_2');

    var myName = document.getElementById('xxx');
      var myNachname = document.getElementById('yyy');

    var mailAdress = document.getElementById('uuu');
      var title = document.getElementById('bbb');

    warum machst du das?
    Die Felder sind doch in dem Formular vorhanden (also in formObj) nur musst du ihnen noch namen geben.

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Hallo Struppi,

      [...]

      warum machst du das?
      Die Felder sind doch in dem Formular vorhanden (also in formObj) nur musst du ihnen noch namen geben.

      Gute Frage.

      Es geht um die Pflichtfleder.

      Wenn der User den Checkbox 1 aktiviert, dann bekommen die Felder: fnm ,lnm Namen und werden dadurch Pflicht, weil die If-Abfrage spricht diese Felder über den Namen an.

      Wenn dann der User die Newsletter 2 auswählt, dann muss er die anderen
      zwei Feder ausfüllen.

      Ich hoffe, dass ich mich verständlich ausgedrückt habe.

      Gruß
      Messmar

      1. [...]

        warum machst du das?
        Die Felder sind doch in dem Formular vorhanden (also in formObj) nur musst du ihnen noch namen geben.

        Gute Frage.

        Es geht um die Pflichtfleder.

        Wenn der User den Checkbox 1 aktiviert, dann bekommen die Felder: fnm ,lnm Namen und werden dadurch Pflicht, weil die If-Abfrage spricht diese Felder über den Namen an.

        du komst doch auch so an die Felder
        formObj.pflicht_1, formObj.pflicht_2, den anderen musst du einen Namen geben (musst du sowieso wenn du sie serverseitig auswerten willst)

        Struppi.

        --
        Javascript ist toll (Perl auch!)
        1. Hallo Struppi,

          du komst doch auch so an die Felder
          formObj.pflicht_1, formObj.pflicht_2, den anderen musst du einen Namen geben (musst du sowieso wenn du sie serverseitig auswerten willst)

          UPPPS! Das ist sogar einfacher. Du hast Recht. Man oh Man.
          Manchmal denkt man einfach komplizierter als es ist ;-))

          Danke für den Hinweis

          Gruß aus Muc