Alexander Zeitler: javascript funktioniert mit ns nicht

hallo,

das nachfolgende javascript funktioniert mit netscape nicht, obwohl
laut selfhtml-javascript-doku sämtliche befehle von ns seit version 2.0 oder aber 3.0 unterstützt sind. mit ie funktioniert das script ohne probleme.

<script LANGUAGE="JavaScript">
<!--
function change_submit() {
if(news_form.id.value == "")

{
  alert("Sie haben keinen Eintrag gewählt!");
  }

else
  {  
    news_form.form_action.value = "chg"
news_form.submit();

}}
// -->
</script>

aufgerufen wird das script mit

<a href="javascript:change_submit()">ändern</A>
<INPUT TYPE="HIDDEN" NAME="form_action">

bei dem feld id handelt es sich um eine select-box

weiß jemand, was ich falsch mache?

gruss

Alexander

  1. Sup!

    Da musst Du schon die ganze Seite posten oder ins Netz stellen und die URL posten - Ausschnitte reichen bei solchen Problemen nicht zur Fehlerfindung.

    Gruesse,

    Bio

  2. Hallo!

    if(news_form.id.value == "")
        news_form.form_action.value = "chg"
    bei dem feld id handelt es sich um eine select-box

    document.news_form.form_action.options[document.news_form.form_action.options.selectedIndex].value

    mfg, André Laugks

  3. Hi,

    das nachfolgende javascript funktioniert mit netscape nicht,

    *seufz* und was heißt bei Dir "funktioniert nicht"?

    <a href="javascript:change_submit()">ändern</A>
    <INPUT TYPE="HIDDEN" NAME="form_action">

    Steht das <input> auch innerhalb eines <form></form>?

    bei dem feld id handelt es sich um eine select-box

    "id" ist ein denkbar schlechter Name, genau wie "name", "window" oder "form". Das stiftet nur Verwirrung; wenn nicht beim Rechner, dann zumindest beim Menschen.

    Cheatah

    1. Hi,

      das nachfolgende javascript funktioniert mit netscape nicht,

      hallo,

      sorry, habe mich echt undeutlich ausgedrückt.
      funktioniert nicht, heißt, daß das script offensichtlich nicht
      ausgeführt wird, aber auch keine fehlermeldung erscheint.
      verwendet wird netscape 4.0 deutsch.

      außerdem mal der gesamte code:

      <HTML>
      <HEAD>
      <TITLE>Test</TITLE>
      <script LANGUAGE="JavaScript">
      <!--
      function delete_submit() {
      if(news_form.id.value == "")

      {
        alert("Sie haben keinen Eintrag gewählt!");
        }

      else
        {

      Check = confirm("Soll der Eintrag wirklich gelöscht werden?");  
      

      if (Check == false)
      {
      window.location.href="admin.asp";
      }
      else
          news_form.form_action.value = "del"
      news_form.submit();

      }}
      // -->
      </script>
      <script LANGUAGE="JavaScript">
      <!--
      function change_submit() {
      if(news_form.id.value == "")

      {
        alert("Sie haben keinen Eintrag gewählt!");
        }

      else
        {  
          news_form.form_action.value = "chg"
      news_form.submit();

      }}
      // -->
      </script>
      </HEAD>

      <BODY>
      <TABLE>
      <TR><TD COLSPAN=4>
      <FONT SIZE="4" FACE="Verdana" COLOR="#000000"><B>Newsticker - Administration</B></FONT>
      <FORM name="news_form" METHOD="POST" action="action.asp"></TD>
      </TR>
      <TR>
      <TD COLSPAN=4>
      <SELECT NAME="id" SIZE=10 style="font-family:Courier New;">
      <OPTION VALUE="4">16.09.2000 - Eintrag 4
      <OPTION VALUE="3">14.09.2000 - Eintrag 3
      <OPTION VALUE="2">13.09.2000 - Eintrag 2
      </SELECT>
      </TD>
      </TR>
      <TR>
      <TD><A HREF="new.asp">neu</A></TD>
      <TD><a href="javascript:delete_submit()">löschen</A></TD>
      <TD><a href="javascript:change_submit()">ändern</A></TD>
      <INPUT TYPE="HIDDEN" NAME="form_action">
      <TD WIDTH="100%"> </TD>
      </TR>
      </FORM>
      </TABLE>

      </BODY>
      </HTML>

      gruss

      Alexander

      1. Hi,

        funktioniert nicht, heißt, daß das script offensichtlich nicht
        ausgeführt wird, aber auch keine fehlermeldung erscheint.

        bist Du sicher? Erscheint auch nicht "type 'javascript:' into the location bar"?

        verwendet wird netscape 4.0 deutsch.

        Bzw. das deutsche Äquivalent dieser Meldung :-)

        if(news_form.id.value == "")
        <FORM name="news_form" METHOD="POST" action="action.asp"></TD>
        <SELECT NAME="id" SIZE=10 style="font-family:Courier New;">

        Ein Formular ist ein Objekt des document-Objektes, muß also so angesprochen werden, und ein <select> hat keinen (nennenswerten) value. Siehe dazu <../../tecbbdaa.htm#a7> und <../../tedi.htm>.

        Cheatah

        1. hallo,

          bist Du sicher? Erscheint auch nicht "type 'javascript:' into the location bar"?

          nein, es erscheint sofort: document done, es wird aber nicht die action.asp geladen, sondern die aktuelle datei bleibt geladen.

          Ein Formular ist ein Objekt des document-Objektes, muß also so angesprochen werden, und ein <select> hat keinen (nennenswerten) value. Siehe dazu <../../tecbbdaa.htm#a7> und <../../tedi.htm>.

          ich habe

          if(news_form.id.value == "")

          jetzt auf

          if(news_form.id.options[this.news_form.id.options.selected].value == "")

          geändert, was aber auch zu keinem anderen ergebnis führt.
          so müßte es aber doch jetzt funktionieren - zumindest die
          if-abfrage müßte ja jetzt dazu führen, daß falls kein wert
          in der box gewählt ist, das confirm-fenster geöffnet wird.

          gruss

          Alexander

          1. Hi,

            if(news_form.id.options[this.news_form.id.options.selected].value == "")

            document, nicht this oder nichts.

            Cheatah

          2. hi,

            if(news_form.id.options[this.news_form.id.options.selected].value == "")

            if(document.news_form.id.options[document.news_form.id.selectedIndex].value == "")

            mfG
            Andrea

            1. hallo,

              hi,

              if(document.news_form.id.options[document.news_form.id.selectedIndex].value == "")

              so funktioniert es jetzt zwar wenn etwas ausgewählt ist,
              allerdings, erscheint im fehlerfall (also nichts gewählt) kein confirm-fenster.
              im ie erhalte ich für diese zeile einen javascript-fehler:

              "Das Objekt unterstützt diese Eigenschaft oder Methode nicht"

              gruss

              Alexander

              1. if(document.news_form.id.options[document.news_form.id.selectedIndex].value == "")

                so funktioniert es jetzt zwar wenn etwas ausgewählt ist,
                allerdings, erscheint im fehlerfall (also nichts gewählt) kein confirm-fenster.

                Hab nicht gesehen, dass es ein mehrzeiliges selectfeld ist.
                Wenn nichts vorausgewählt ist enthält selectedIndex den Wert -1.

                Darum:

                if(document.news_form.id.selectedIndex==-1)

                mfg
                Andrea

                1. Darum:

                  if(document.news_form.id.selectedIndex==-1)

                  mfg
                  Andrea

                  super jetzt funktioniert es - DANKE (auch an alle anderen) für die schnelle hilfe

                  gruss
                  Alexander