Stringteile in Formularfeldern autokopieren
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
brauch
code
dateiname
eingabe
erfolg
folgenden code
http
korrigieren
letzten teil
liegen
opus
passieren
pfad
quellcode
teil
testen
umgehen
url
vorgehen
zeichen
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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. -
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 -
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 ;)
-
Klappt immer noch nicht. Aber muss da nicht in Zeile 7 vor filename noch document. ?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage