kostenloser Webspace werbefrei: lima-city


Stringteile in Formularfeldern autokopieren

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    o**s

    Unter http://opus.lima-city.de/download/ckrack.php habe ich eine Seite, mit der man proxyseitige Download-Blocks umgehen kann. Nun möchte ich, dass beim Klick auf den Link rechts neben dem ersten Formularfeld der dort eingegebene Dateiname in das Formularfeld darunter kopiert wird. Es soll nicht der ganze Pfad sondern nur der Dateiname kopiert werden.
    Da ich sehr wenig JavaScript beherrsche entschied ich mich nach einigen Versuchen hier nach zu fragen, wie es geht.

    Wie geht es?

    Vielen Dank für eure Hilfe
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Schwierige angelegenheit... Ich würde im endeffekt in etwa so vorgehen:

    - Beim onKeyDown- oder onChange-Event soll er mir den bisher eingegebenen Sting bei jedem / oder splitten.
    - Die Teile in ein Array schreiben lassen.
    - Jeweils den letzten Teil des Arrays in das angegebene Formular eingeben lassen.

    Das führt dann dazu, dass sich während der eingabe zwar der Dateiname ständig ändert, bis er fertig eingegeben ist, was aber nicht allzu viel ausmachen sollte, meine ich ;)

    Nun zum Quellcode:

    function SetFilename
    {
        var source = document.getElementById('source');
        var filename = document.getElementById('filename');
        var Dateiname = source.value.split("\");
        // var Dateiname = source.split("/"); // Alternatives Split-Zeichen
        filename.value = Dateinamen[Dateiname.lenght];
    }


    Natürlich muss der eventuell noch ein wenig angepasst werden, vor allem da ich momentan nicht die möglichkeit habe den code zu testen, aber in etwa so sollte es aussehen. Testen und korrigieren tu ich den ggf. später ;)

    [EDIT] So, ich hoffe, das funktioniert nun so. Test steht noch aus.

    Beitrag geändert: 24.9.2008 9:06:43 von nerdinator
  4. Autor dieses Themas

    o**s

    Brauch ja nicht genau während der Eingabe passieren. Kann ja auch nach Betätigen des Links rechts nebenan erfolgen. Vielleicht will ich den Namen ja gar nicht übernehmen?
    Meine Textfelder lauten "source" für Quelle und "filename" für Dateinamen.

  5. Brauch ja nicht genau während der Eingabe passieren. Kann ja auch nach Betätigen des Links rechts nebenan erfolgen.


    Auf welches Event du die Funktion dann setzt überlasse ich mal dir selbst. Kannst sie ja je nach belieben verwenden.
  6. Autor dieses Themas

    o**s

    Ich habe jetzt folgenden Code:
    ...
    <script language="javascript">
    function SetFilename
    {
        var source = document.getElementById('source');
        var filename = document.getElementById('filename');
        // var Dateiname = source.value.split("");
        var Dateiname = source.value.split("/"); // Alternatives Split-Zeichen
        filename.value = Dateinamen[Dateiname.lenght];
    }
    </script>
    ...
    <fieldset>
    
    <form method="post" action="ckrack.php">
    <table>
    <tr>
    	<th>Quelldatei</th>
    	<td><input type="text" size="150" id="source" name="source" value="http://" /> <a href="javascript:SetFilename()">-></a></td>
    </tr>
    <tr>
    	<th>Ziel-Dateiname</th>
    	<td><input type="text" size="50" id="filename" name="filename" value="cracked.renamed" /></td>
    
    </tr>
    ..
    <tr>
    	<th></th>
    	<td><input type="submit" name="submit" value="Go" /></td>
    </tr>
    </table>
    </form>
    </fieldset>
    ...


    Aber es funktioniert irgendwie nicht. http://opus.lima-city.de/download/ckrack.php
  7. Wie schon gesagt: Könnte noch leicht buggy sein, da ich noch nicht dazu kam, es zu testen. Gegen 10 Uhr kann ich in meiner Pause mal schauen. Aber es könnte bspw. daran liegen:

    function SetFilename
    {
     var source = document.getElementById('source');
     var filename = document.getElementById('filename');
     // var Dateiname = source.value.split('');
     var Dateiname = source.value.split('/'); // Alternatives Split-Zeichen
     filename.value = Dateiname[Dateiname.lenght-1];
    }


    Wenn die URL "http://localhost/foo/bar.zip" heissen würde, würde Dateiname.lenght mir wahrscheinlich 5 Teile angeben, aber es geht nur von Dateiname[0] bis [4]... Dort könnte ein Fehler liegen. Genau kann ich das aber erst gegen 10 sagen, dann kann ich mal mit Firebug etc. debuggen ;)



  8. Autor dieses Themas

    o**s

    Klappt immer noch nicht. Aber muss da nicht in Zeile 7 vor filename noch document. ?
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!