Tobi: Form / Submit lädt meine Webseite neu... !?

Hallo!

Ich versuche das Formular "Börsenlexikon" von
http://www.boersenschule24.de/bs24/webmaster.htm auf meine Webseite einzubinden, jedoch lädt dieses automatisch meine gesamte Webseite neu, wenn Submit durch mein "Suchen"-Feld oder durch "Enter" aktiviert wird. (Leicht am Bild zu erkennen.)
Eigentlich soll sich nur das externe Fenster öffnen...

Wie kann ich dieses Neuladen verhindern bzw. wo ist mein Programmierfehler???

Vielen Dank.
Tobi

---

Quelltext:

<html>
<head>

<title>Börsenlexikon</title>

</head>
<body bgcolor="#ffffff" scroll="auto">

<b>Börsenlexikon</b>

<script language="JavaScript">
<!-- start of JavaScript
var win;
function b24check()
{
 if (document.drstocks.w.value.length < 3 || document.drstocks.w.value == "")
 {
  alert("Für die Suche nach einem Begriff im Börsenlexikon müssen mindestens 3 Buchstaben angegeben werden.");
  document.drstocks.w.focus();
 }
 else
 {
  var news=0;
  var src = "http://www.boersenschule24.de/bs24/lexikon/index.php?w=" + document.drstocks.w.value;
  win = window.open(src,"Boersenlexikon","statusbar=NO,menubar=NO,toolbar=NO,scrollbars=NO,width=750,height=550,resizable=NO");
  if (win != null)
   win.focus();
 }
 return false;
}
//  end of JavaScript !-->

</script>

<form action="#" onSubmit="b24check();" method="post" name="drstocks">
 <li>Suchbegriff:<br>
 <input type="TEXT" name="w" size="13"  value="Chartanalyse"
  onfocus="if(this.value=='Chartanalyse')this.value='';"
  onblur="if(this.value=='')this.value='Chartanalyse';"
  onMouseOver="window.status='Bitte geben Sie hier Ihren Suchbegriff ein.'; return true; "
  onMouseOut="window.status=' '; return true; ">
 <br>
 [<a href="#" onClick="document.drstocks.submit()"
  onMouseOver="window.status='Hier klicken und finden.'; return true; "
  onMouseOut="window.status=' '; return true; "> suchen </a>]
 <p>
 powered by <a href="http://www.boersenschule24.de" target="_blank">Boersenschule24.de</a>
</form>

</ul>

<hr size="1">
<img src="http://ichart.lng.yahoo.com/t?s=^gdaxi">

</body>
</html>

  1. Hi,

    <script language="JavaScript">

    ERROR: Required attribute "type" missing.

    <form action="#" onSubmit="b24check();" method="post" name="drstocks">

    Die Formular-Action geht auf die aktuelle Seite, und Du verhinderst das Absenden in keinem Fall. Zudem machst Du die Funktionalität von JavaScript abhängig, was ein _sehr_ klarer Fehler ist.

    onMouseOver="window.status='Bitte geben Sie hier Ihren Suchbegriff ein.'; return true; "

    Lass gefälligst die Statuszeile des Browsers in Ruhe. Siehe Archiv.

    [<a href="#" onClick="document.drstocks.submit()"

    Du verhinderst ebenso wenig, dass diesem Link gefolgt wird.

    <img src="http://ichart.lng.yahoo.com/t?s=^gdaxi">

    IIRC muss das "^" kodiert werden.

    Cheatah

    --
    X-Will-Answer-Email: No
    1. Hallo!

      Danke für die schnelle Antwort, jedoch ist das Problem nicht behoben.

      Hi,

      <script language="JavaScript">

      ERROR: Required attribute "type" missing.

      behoben.

      <form action="#" onSubmit="b24check();" method="post" name="drstocks">

      Die Formular-Action geht auf die aktuelle Seite, und Du verhinderst das Absenden in keinem Fall. Zudem machst Du die Funktionalität von JavaScript abhängig, was ein _sehr_ klarer Fehler ist.

      Ich will das Absenden gar nicht verhindern... Ich will, daß sich nur das Javascript-Fenster öffnet ohne meine eigene Seite zu verändern oder neuzuladen...

      onMouseOver="window.status='Bitte geben Sie hier Ihren Suchbegriff ein.'; return true; "

      Lass gefälligst die Statuszeile des Browsers in Ruhe. Siehe Archiv.

      entfernt.

      [<a href="#" onClick="document.drstocks.submit()"

      Du verhinderst ebenso wenig, dass diesem Link gefolgt wird.

      ?

      <img src="http://ichart.lng.yahoo.com/t?s=^gdaxi">

      IIRC muss das "^" kodiert werden.

      Das Bild soll nur das Neuladen veranschaulichen.

      Tobi

      Cheatah

      Quelltext neu:

      ---

      <html>
      <head>

      <title>Börsenlexikon</title>

      </head>
      <body bgcolor="#ffffff" scroll="auto">

      <b>Börsenlexikon</b>

      <script language="JavaScript" type="text/javascript">
      <!-- start of JavaScript
      var win;
      function b24check()
      {
       if (document.drstocks.w.value.length < 3 || document.drstocks.w.value == "")
       {
        alert("Für die Suche nach einem Begriff im Börsenlexikon müssen mindestens 3 Buchstaben angegeben werden.");
        document.drstocks.w.focus();
       }
       else
       {
        var news=0;
        var src = "http://www.boersenschule24.de/bs24/lexikon/index.php?w=" + document.drstocks.w.value;
        win = window.open(src,"Boersenlexikon","statusbar=NO,menubar=NO,toolbar=NO,scrollbars=NO,width=750,height=550,resizable=NO");
        if (win != null)
         win.focus();
       }
       return false;
      }
      //  end of JavaScript !-->

      </script>

      <form action="#" onSubmit="b24check();" method="post" name="drstocks">
       <li>Suchbegriff:<br>
       <input type="TEXT" name="w" size="13"  value="Chartanalyse"
        onfocus="if(this.value=='Chartanalyse')this.value='';"
        onblur="if(this.value=='')this.value='Chartanalyse';">
       <br>
       [<a href="#" onClick="document.drstocks.submit()"> suchen </a>]
       <p>
       powered by <a href="http://www.boersenschule24.de" target="_blank">Boersenschule24.de</a>
      </form>

      </ul>

      <hr size="1">
      <img src="http://ichart.lng.yahoo.com/t?s=^gdaxi">

      </body>
      </html>

      1. Hi,

        Ich will das Absenden gar nicht verhindern... Ich will, daß sich nur das Javascript-Fenster öffnet ohne meine eigene Seite zu verändern oder neuzuladen...

        Du widersprichst Dir selbst. Wenn Du das Absenden nicht verhinderst, _wird_ die aktuelle Seite neu geladen. Das bedeutet das action="#".

        Lass gefälligst die Statuszeile des Browsers in Ruhe. Siehe Archiv.
        entfernt.

        Danke.

        [<a href="#" onClick="document.drstocks.submit()"
        Du verhinderst ebenso wenig, dass diesem Link gefolgt wird.
        ?

        onClick tust Du etwas, aber der Klick auf den Link ist erfolgt, und Du verhinderst nicht, dass genau das passiert, was üblicherweise passiert, wenn auf einen Link geklickt wird.

        <img src="http://ichart.lng.yahoo.com/t?s=^gdaxi">
        IIRC muss das "^" kodiert werden.
        Das Bild soll nur das Neuladen veranschaulichen.

        Das verstehe ich zwar nicht; aber unabhängig vom Zweck ist die URL defekt. Ich vergaß übrigens zu erwähnen, dass das alt-Attribut required ist.

        Cheatah

        --
        X-Will-Answer-Email: No
        1. Hi,

          Ich will das Absenden gar nicht verhindern... Ich will, daß sich nur das Javascript-Fenster öffnet ohne meine eigene Seite zu verändern oder neuzuladen...

          Du widersprichst Dir selbst. Wenn Du das Absenden nicht verhinderst, _wird_ die aktuelle Seite neu geladen. Das bedeutet das action="#".

          Wie kann ich dies ändern?
          Ich habe mehrere Formulare mit Javascript (amazon, buch.de, Gebühren rechner, Kurssuche...) Jedes Formular öffnet ein Fenster eines externen Anbieters ohne meine Webseite zu laden - nur dieses Formular nicht.(?)

          1. Hi,

            Wenn Du das Absenden nicht verhinderst, _wird_ die aktuelle Seite neu geladen. Das bedeutet das action="#".

            Wie kann ich dies ändern?

            benutze eine vernünftige Formular-Action, verzichte auf JavaScript. Damit sprichst Du zudem eine weitaus höhere Nutzerzahl an. Wie man verhindert, dass im Zusammenhang mit Event-Handlern die eigentliche mit dem Event zusammenhängende Aktion durchgeführt wird, findest Du im Archiv.

            Ich habe mehrere Formulare mit Javascript (amazon, buch.de, Gebühren rechner, Kurssuche...) Jedes Formular öffnet ein Fenster eines externen Anbieters

            Das ist schlecht. Genießt Du es eigentlich, Deine Besucher zu ärgern, oder geschieht dies aus Unwissenheit?

            Cheatah

            --
            X-Will-Answer-Email: No