1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Formularfeld mit Javascript richtig ansteuern?

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von wurzelchensen, 12.02.10.

  1. wurzelchensen

    wurzelchensen Ingrid Marie

    Dabei seit:
    13.05.06
    Beiträge:
    264
    Hallo Forum,

    Ich versuche mittels Applescript und dem Befehl "do JavaScript" ein Webformular automatisiert ausfüllen zu lassen.

    Auf folgender Seite: link
    möchte ich das Formularfeld "Title *" mit einem beliebigen Text füllen können.

    Ich habs mit folgendem Javascript Code versucht:
    Code:
    document.getElementsByTagName('ent_title').value = 'Apfel';
    Leider funktioniert der von mir verwendete Javascript Code nicht!

    Was könnte die richtige Lösung sein?

    Besten Dank für eure Antworten im Voraus.
    lg
    W.
     
  2. bezierkurve

    bezierkurve Danziger Kant

    Dabei seit:
    12.06.05
    Beiträge:
    3.861
    Der Tag-Name ist nicht "ent_title", sondern "input". Du müsstest dir also erst mal alle Input-Elemente holen und daraus das raussuchen, das das Attribut name="ent_title" hat.
     
  3. wurzelchensen

    wurzelchensen Ingrid Marie

    Dabei seit:
    13.05.06
    Beiträge:
    264
    Ok, danke bezierkurve!
    Da ich aber keine Ahnung von Javascript habe, frag ich ob es nicht einfacher währe z.B. so was zu machen:
    document.forms[0].elements[6].value = 'apfel'

    Funktioniert das? Und wie weiss ich welches Feld welches Nummer hat --> forms[?].elements[?]
     
  4. bezierkurve

    bezierkurve Danziger Kant

    Dabei seit:
    12.06.05
    Beiträge:
    3.861
    Moinsen. Ich würde es folgendermaßen machen:

    Code:
    var inputs = document.getElementsByTagName('input'); 
    for (var i = 0; i < inputs.length; i++) { 
    	if (inputs[i].getAttribute('name') == 'ent_title') {
    		inputs[i].value = 'Apfel';
    	}
    }
    Dein Ansatz geht zwar auch, ist aber nicht so robust gegenüber eventuellen Änderungen auf der Seite.
     
    wurzelchensen gefällt das.
  5. Alecco

    Alecco Transparent von Croncels

    Dabei seit:
    17.02.09
    Beiträge:
    306
    Kann man dafrü nicht die "jquery" verwenden?
     
  6. Toddy

    Toddy Wohlschmecker aus Vierlanden

    Dabei seit:
    10.05.04
    Beiträge:
    240
    Wieso nicht über
    Code:
    document.getElementsByName()
    ?
     
    wurzelchensen gefällt das.
  7. MasterofDistres

    MasterofDistres Kleiner Weinapfel

    Dabei seit:
    07.12.06
    Beiträge:
    1.139
    Ja kannst du, geht sogar ziemlich einfach - du gibst dem Element am besten eine bestimmte ID und ändert dann mit
    Code:
    $("#id-name").val("neuer Wert");
    den Wert ;)
     
  8. bezierkurve

    bezierkurve Danziger Kant

    Dabei seit:
    12.06.05
    Beiträge:
    3.861
    Kannte ich gar nicht. Ist natürlich besser :) .
     
  9. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    warum nicht über ne id ansteuern?
    <form id="name"><input name="input1">...</form>
    Code:
    document.getElementById('name').input1.value='test';
    
    ?

    damit kann man dann auch in JS mehr realisieren zb:

    function func(form){
    //mach irgendwas damit zb:
    form.input1.value='55';
    }

    aufgerufen mit: func(document.getElementById('name'))

    auch das senden per Ajax oder Aufruf von PHP Dateien ist so wesentlich einfacher.
     
  10. wurzelchensen

    wurzelchensen Ingrid Marie

    Dabei seit:
    13.05.06
    Beiträge:
    264
    Ist auf jeden Fall besser als mein Ansatz, Danke!

    Wieso nicht einfach ... :) Danke, das hab ich gesucht!

    Ich bin absoluter Anfänger und Autodidakt, was Javascript und Programmieren im allgemeinen angeht.
    Ihr könnt euch vorstellen wie froh ich bin, dass nun alles klappt und mein schönes Formular füllt sich jetzt von selbst aus :)

    Danke auch allen anderen die geholfen haben!

    Hoffe die Mac Community bleibt so stark wie immer ...
     
  11. karolherbst

    karolherbst Danziger Kant

    Dabei seit:
    11.05.07
    Beiträge:
    3.878
    Den Ansatz über document.getElementsByName() würde ich nicht empfehlen, da man somit kein Formularobjekt an eine Funktion übergeben kann.

    gib lieber dem Formular eine eindeutige id, dann kannst du es direkt über document.getElementById() ansprechen und hast da kein array.

    Kannst aber auch die Tipps hier verwenden http://de.selfhtml.org/javascript/objekte/forms.htm
    der Weg über getElements ist immer etwas blöde und bringt dich im späteren Verlauf auch nicht wirklich weiter, spätestens bei Ajax bekommste dann Probleme, da du eine allgemeine Funktion nicht auf jedes Formular anwenden kannst.
     

Diese Seite empfehlen