peterS.: Netscape und .length BUG

Beitrag lesen

also Chris,

willst Du nun meine hilfe oder nicht?
Gern, nur wann fängst du damit an mir zu helfen?

jetzt -

stimmt - also muss im script mindestens ein fehler stecken;
Warum Fehler bei mir? Wenn ich eine nicht vorhandene Option eines Objekts abfrage, sollte sie doch immer 'undefined' sein und nicht plötzlich bei einer zweiten Abfrage einen Wert haben.

ok - dem teil nach dem "?" stimme ich zu;

der hund liegt in der fehlerhaften js-syntax begraben, mit der
   die formularelemente angesprochen werden sollen   -   insofern
   bin ich auch nicht auf das verhalten des NN4 eingegangen, weil
   eine beantwortung dieser frage in keiner weise zur loesung
   Deines problems bei der auswertung des formulars beitraegt, und
   man ueberdies nur spekulieren kann, warum sich der NN4 wie von
   Dir beschrieben verhaelt;
   (Roberts annahme halte ich jedoch fuer schluessig und sehr
    wahrscheinlich -

Das könnte daran liegen, dass bei der ersten Adressierung der
length-Eigenschaft diese noch nicht vorhanden ist. Das Ansprechen
der Eigenschaft könnt NC4 als "Variablendeklaration"
interpretieren, wodurch er eine Eigenschaft mit dem Namen
"length" anlegt. Beim zweiten Ansprechen ist sie dann vorhanden
und hat einen Wert (warum gerade 2 weiß ich nicht). Ist aber nur
eine Spekulation.

- was wiederrum fuer den NN4 spricht, da er sich damit korrekt
   verhaelt)

der js-code meines ersten postings war als anstoss fuer Dich
   gedacht, die syntax zu ueberdenken, mit der Du Dein formular
   ansprichst;

es tut mir leid, wenn Du meinen ersten satz -

noe, NN4 haut Dir nur das ergebnis Deines scripts um die ohren;

- als angriff verstanden hast - da fehlte halt ein  ;-)  an ende
   ebendiesen;

falls ich mal wieder auf eine Deiner fragen in der mir eigenen
   schreibart anworten sollte, verliere bitte nicht die fassung,
   wie eben geschehen und denke erst einmal nach, bevor Du zurueck-
   schiesst   -   hier das ergebnis meines frustabbaus auf Deinen
   kommunikationsstil:

<html>

<head>
 <title>selfForumChrisAndFormCheck.html</title>
 <script type="text/javascript" language="JavaScript">
 <!--
 function formSubmit() {
 // alert('Text: '+document.formular[1].length);
 // alert('Option: '+document.formular[0].length);
 // alert('Text: '+document.formular[1].length);
  var formObject = document.forms["mainform"];
  alert("mainform.elements.length = " + formObject.elements.length);
  for (var i=0;i<formObject.elements.length;i++) {
   if (formObject.elements[i].type == "select-one") {
    var indexDefaultSelected = -1;
    for (var k=0;k<formObject.elements[i].options.length;k++) {
     if (formObject.elements[i].options[k].defaultSelected) {
      indexDefaultSelected = k;
      break;
     }
    }
    alert("type of mainform-element[" + i + "] : "" + formObject.elements[i].type + ""\n\n[select-one-element].name = " + formObject.elements[i].name + "\n[select-one-element].options.length = " + formObject.elements[i].options.length  + "\n\n[select-one-element].selectedIndex = " + formObject.elements[i].selectedIndex + "\n[select-one-element].indexDefaultSelected = " + indexDefaultSelected);
   } else if (formObject.elements[i].type == "radio") {
    var radioCollectionLength = formObject.elements[formObject.elements[i].name].length;
    var indexChecked = -1;
    var indexDefaultChecked = -1;
    for (var k=0;k<radioCollectionLength;k++) {
     if (formObject.elements[formObject.elements[i].name][k].checked) {
      indexChecked = k;
     }
     if (formObject.elements[formObject.elements[i].name][k].defaultChecked) {
      indexDefaultChecked = k;
     }
    }
    alert("type of mainform-element[" + i + "] : "" + formObject.elements[i].type + ""\n\n[radio-element].name = " + formObject.elements[i].name + "\n[radio-element].length = " + formObject.elements[formObject.elements[i].name].length  + "\n\n[radio-element].indexChecked = " + indexChecked + "\n[radio-element].indexDefaultChecked = " + indexDefaultChecked);
   } else {
    alert("type of mainform-element[" + i + "] : "" + formObject.elements[i].type +""");
   }
  }
 // return false;
 }
 //-->
 </script>
</head>

<body>
 <form name="mainform" method="get" action="" target="_self" onSubmit="return formSubmit()">
  <select name="dropdown01">
   <option value="option01">0101</option>
   <option value="option02">0102</option>
  </select><br>
  <select name="dropdown02">
   <option value="option01">0201</option>
   <option value="option02">0202</option>
   <option value="option01" selected>0203</option>
   <option value="option02">0204</option>
  </select><br>
  <input type="text" name="text01" value=""><br>
  <input type="text" name="text02" value=""><br>
  <input type="radio" name="radio01" value="01">01 
  <input type="radio" name="radio01" value="02" checked>02 
  <input type="radio" name="radio01" value="03">03 <br>
  <input type="radio" name="radio02" value="01">01 
  <input type="radio" name="radio02" value="02">02 
  <input type="radio" name="radio02" value="03">03 <br>
  <input type="submit" value="Test">
 </form>
</body>

</html>

antworten zu noch offene fragen findest Du unter:
   http://selfhtml.teamone.de/javascript/objekte/forms.htm,
   http://selfhtml.teamone.de/javascript/objekte/elements.htm,
   http://selfhtml.teamone.de/javascript/objekte/options.htm;

peterS. - pseliger@gmx.net