Tobias: onClick --> go to URL

N'Abend
ich habe ein Problem: ich möchte auf einer Page ein
Eingabeformular haben in dem standartmäßig

http://www.

steht und dahinter der eingabecursor blinkt wenn man auf enter drückt oder auf den go button klickt soll die eingegebene url aufgerufen werden

bisher hab ich diesen quelltext
was ist daran falsch bzw was muss dazugefügt werden

danke für eure hilfe

<script>function goto(a) {
var a = x
self.location.href=a}</script>

<form>
<input name=x type="text" maxLength=256 size=55 value="www." tabindex="1">
<input type="button" name="goto" value="Go" onClick="goto(x)">
</form>

  1. N'Abend

    Nabend - das ist meine Begrüßung ;)

    <script>

    Das notwendige Attribut type fehlt.

    function goto(a) {

    a heißt der Parameter der Funktion, also was macht es für einen Sinn, wenn du mit

    var a = x

    eine Variabel a einführst, die den Inhalt x hat? Zudem: Da fehlt ein Strichpunkt und was ist x?

    self.location.href=a}

    Da fehlt wieder ein Strichpunkt.

    <input type="button" name="goto" value="Go" onClick="goto(x)">

    Was ist x?
    Greife doch einfach in der Funktion auf das Formularfeld zu, zB mittels getElementById() oÄ. Dann ist auch der Parameter überflüssig.
    Was machst du aber, wenn jemand kein JS hat?

    Bis denne,

    1. x soll die url sein die man eingibt

      die funktion ist nicht so wichtig als dass einer der kein js hat auf sehr viel verzichten müsste

      wie funktioniert das mit dem getElementById() ?

      1. Nabend,

        x soll die url sein die man eingibt

        Dann musst du das auch entsprechend in deinem Quellcode schreiben.

        wie funktioniert das mit dem getElementById() ?

        SelfHTML weiß es.

        Bis denne,

        1. Aber bei getElementById() wird doch nur das inpunt ausgewählt nicht der text (die url) die der nutzer eingibt oder versteh ich das falsch?

          1. Nabend,

            Aber bei getElementById() wird doch nur das inpunt ausgewählt

            Genau. Aber wenn du das hast, so kannst du doch ganz normal auf dessen Eigenschaften zurückgreifen.

            Bis denne,

            1. ist das so jetzt richtiger?

              <script type="text/javascript">
              <!--
              function Ziel()
              {document.getElementById("1").x = url;
              self.location.href = url;
              }
              //-->
              </script>
              <form>
              <input name=x id="1" type="text" maxLength=256 size=55 value="www." tabindex="1">
              <input type="button" name="goto" value="    Go    " onClick="Ziel();">

              </form>

              1. hi,

                ist das so jetzt richtiger?

                nein, dass ist jetzt auf jeden fall mal käse.

                {document.getElementById("1").x = url;
                self.location.href = url;

                in verbindung mit

                <input name=x id="1" type="text" maxLength=256 size=55 value="www." tabindex="1">

                ergibt höchstwahrscheinlich unsinn - du hast jetzt im vorgegebenen value vor dem www dass http:// weggelassen.
                wenn der user das nicht korrigiert, wird seine eingabe wahrscheinlich www.example.com lauten - wenn du location.href aber diesen wert zuweist, ist das ein relativer verweise auf ressource auf dem server, die auf den namen "www.example.com" hört - auf deutsch, es wird im aktuellen verzeichnis auf dem server nach einer datei oder einem unterverzeichnis www.example.com gesucht.

                gruss,
                wahsaga

                1. Nabend,

                  Des weiteren ist natürlich auch noch http://selfhtml.teamone.de/html/referenz/attribute.htm#id_idref_name zu beachten.

                  Bis denne,

  2. Hallo Tobias,

    steht und dahinter der eingabecursor blinkt wenn man auf enter drückt oder auf den go button klickt soll die eingegebene url aufgerufen werden

    für was?

    <script>

    hier fehlt das type-Attribut

    function goto(a) {
    var a = x

    die Zeile brauchst du nicht.

    <form>
    <input name=x type="text" maxLength=256 size=55 value="www." tabindex="1">

    bei value musst du schon das http:// mit eingeben, sonst funktioniert das weiterleiten auf die externe url nicht.

    <input type="button" name="goto" value="Go" onClick="goto(x)">

    mach mal aus diesem Button ein submit-Button (type="submit") und übergib der Funktion goto() den Wert des Textfeldes. Statt x musst du z.B. this.form.x.value einsetzen; mit this.form bekommst du das aktuelle Formular, mit x das Text-Feld (da es name="x" hat) und mit value dessen Wert. Um zu verhindern, dass das Formular abgeschickt wird, musst du noch ein return false; hinter den Funktionsaufruf schreiben (mit einem ; von diesem abgetrennt).

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. es funktioniert!!! vielen Dank (ohne submit)

      der curso soll hinter dem http://www. stehen damit man sofort tippen kann wenn die seite augferufen wird und per enter soll man die neue url bestätigen (oder eben bei klick auf den button)

      1. habe es nun geschafft mit

        function cursorOn(){document.goto.x.focus();}

        und onload="cursorOn();"

        den curson automatisch in das eigabefeld x zu stellen.

        geht es auch den " focus" hinter  das http://www. zu setzen???

  3. Hi !
    Viele Wege führen nach Rom !

    <script>
    function gehe()
    {hallo = window.document.forms[0].elements[0].value;
    document. location.href = hallo;
    }
    </script>
    <form>
    <input name=x type="text" maxLength=256 size=55 value="http://" tabindex="7">
    <input type="button" name="goto" value="Go" onClick="gehe()">
    </form>

    Bleibt noch der Cursor-Fokus zu klären !!
    Hat jemand einen Vorschlag ??
    :o)

    1. Nabend,

      Viele Wege führen nach Rom !

      Leider auch wohl falsche ;)

      <script>

      Die notwendige type-Angabe fehlt!

      {hallo = window.document.forms[0].elements[0].value;

      Unschön. Ich baue mir ein Formualr davor bzw. im gleichen ein anderes Feld und schon geht das nicht mehr.

      document. location.href = hallo;

      Was hat das Leerzeichen nach dem document. zu suchen?

      Bis denne,

      1. Korinthenkacker !

        <script>
        Die notwendige type-Angabe fehlt!

        Diese schludrige Herangehensweise hab ich mit vielen meiner Kollegen gemeinsam !

        {hallo = window.document.forms[0].elements[0].value;
        Unschön. Ich baue mir ein Formualr davor bzw. im gleichen ein anderes Feld und schon geht das nicht mehr.

        Statt Index-Nummern lassen sich auch Namen einsetzen !

        document. location.href = hallo;
        Was hat das Leerzeichen nach dem document. zu suchen?

        Ich plenke halt gerne, wußtest du das nicht !?
        :o)

        1. Hallo 08/15,

          document. location.href = hallo;
          Was hat das Leerzeichen nach dem document. zu suchen?

          zumal location ein Unterobjekt von window ist, nicht von document...

          Ich plenke halt gerne, wußtest du das nicht !?

          In diesem Satz plenkst du, nicht in der Zeile mit dem document.location... - der Punkt hängt nämlich wie es sich gehört direkt an dem Wort :-)

          Grüße aus Nürnberg
          Tobias

          --
          Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|