Patrick: Mittels Javascript Formularziel auswählen

Hi Forum,

gibt es die Möglichkeit, aus einer Eingabe in einem <input type="text"> und dem <form action="ziel"> genau dieses Ziel zu definieren?
Was ich vorhabe:
Ich will anhand der Eingabe eines Usernamens eine entsprechende Adresse mit dem action Tag aufrufen.
Beispiel:
Username: meier, dann soll der action-Tag lauten: action="meier.de"
Username: schmidt, action-Tag: schmidt.de

Ist sowas möglich?

Vielen Dank
Patrick

  1. Hallo Patrick,

    gibt es die Möglichkeit, aus einer Eingabe in einem <input type="text"> und dem <form action="ziel"> genau dieses Ziel zu definieren?

    Bedingt, denn JS ist beanntlich optional...
    Du kannst doch einfach mittels des onsubmit-Eventhandlers das Senden des Formulares abfangen und dann auf eine Seite deiner Wahl weiterleiten. Dabei hilft dir das location-Objekt.
    Wenn du ein Formular hast, welches weitere relevante Daten beinhaltet, so kannst du natürlich auch das action-Attribut ändern.

    Wenn es aber auf jeden Fall bei jedem laufen soll, so führst du eine serverseitige Überprüfung des Parameters durch und leitest von dort weiter.

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
    1. Hi David,

      kann ich auch eine Funktion schreiben, die den Usernamen abfängt, daraus das Ziel definiert und im eigentlichen Action-Tag den Platzhalter dafür überschreibt?

      Wenn ja, wie mach ich das bzw. wo find ich das?

      danke
      Patrick

      1. hi,

        kann ich auch eine Funktion schreiben, die den Usernamen abfängt, daraus das Ziel definiert und im eigentlichen Action-Tag den Platzhalter dafür überschreibt?

        natürlich, geht analog.
        mit onSubmit ins absenden des formulars eingreifen, und dabei dann den wert aus dem eingabefeld auslesen [1], und dem action-attribut zuweisen [2].

        "überschreiben" des platzhalters - entweder die zu ergänzenden teile direkt im JS-code hinzufügen, oder wirklich "ersetzen" eines teilstrings - letzteres über stringfunktionen/RegEx-objekt.

        [1] http://de.selfhtml.org/javascript/objekte/elements.htm#value
        [2] http://de.selfhtml.org/javascript/objekte/forms.htm#action

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hi nochmal,

    also ich bin jetzt soweit, dass ich meinen User ausgelesen habe und den entsprechenden String gebaut habe!
    Wie bekomm ich den nun in den action-tag rein???

    Danke und Bye
    Patrick

    1. hi,

      also ich bin jetzt soweit, dass ich meinen User ausgelesen habe und den entsprechenden String gebaut habe!
      Wie bekomm ich den nun in den action-tag rein???

      schau dir das von mir verlinkte beispiel noch mal an: http://de.selfhtml.org/javascript/objekte/forms.htm#action

      da siehst du das bildchen - was bedeutet, dass man diese eigenschaft sowohl auslesen als auch überschreiben kann.

      es ist also nur noch eine simple zuweisung, was du suchst.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hi,

        hab ich ja gemacht:
        <form name="loginform" action="javascript:(document.write.ziel);" method="POST" target="_top" onsubmit="return chktarget()">

        Wobei ziel die von mir definierte Adresse ist.
        Nur es tut sich nix.
        Was mach ich da falsch? Mit den Links von dir komm ich nicht klar zum überschreiben.

        Danke
        Patrick

        1. Hallo Patrick,

          <form name="loginform" action="javascript:(document.write.ziel);" method="POST" target="_top" onsubmit="return chktarget()">

          Was du hier versuchst ist nicht gut. Du sollst, wie man dir ja schon sagte, das action-Atrribut neu setzen. Sprich irgendwo (vermutlich in chktarget()) steht sowas wie
          document.loginform.action="http://www.example.org/"

          Grüße
            David

          --
          >>Nobody will ever need more than 640k RAM!<<
          1981 Bill Gates
          1. Hi David,

            DAS wars! So geht es, vielen Dank an euch beide.

            Danke und Bye
            Patrick