tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
563
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Subwoover Subwoover ist offline Mitglied Platin
    Registriert seit
    Dec 2001
    Ort
    Wien
    Beiträge
    532
    Hey hab da mal ein prob...
    würd mein smileyscript gern dynamisch machen, so dass ich mit funktionsaufruf auch angebe, welches form feld ich gerne anspreche und welches form

    so sieht meine funktion aus:
    Code :
    1
    2
    3
    4
    
    function setsmile(icon){
        document.form.preise.value = document.form.preise.value + icon;
        document.form.preise.focus();
    }

    würde gerne "form" und "preise" dynamisch einbaun, wie mach ich das? bin gaaaaanz neu in der JS szene
     

  2. #2
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    Wie wär's damit? :

    function setsmile(ename, icon){
    var elem = document.getElementsByName(ename);
    elem.value = elem.value+icon;
    elem.focus();
    }
    Geändert von rootssw (23.09.03 um 00:29 Uhr)
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  3. #3
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    Ich hab's grad mal getestet.
    Da sonst Fehler kommen, muss man das offenbar so schreiben:

    function setsmile(ename, icon){
    var elem = document.getElementsByName(ename)[0];
    elem.value = elem.value+icon;
    elem.focus();
    }

    oder die Dimension mit übergeben:

    function setsmile(ename, dim, icon){
    var elem = document.getElementsByName(ename)[dim];
    elem.value = elem.value+icon;
    elem.focus();
    }
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  4. #4
    Subwoover Subwoover ist offline Mitglied Platin
    Registriert seit
    Dec 2001
    Ort
    Wien
    Beiträge
    532
    und welche werte hat die dimension? bzw was steht in dem array?
    ich hab da so um die 40 felder und würd die funktion gern bei 4-5 von denan andwenden, also einfach immer dimension = 0?

    EDIT: funktioniert genauso wie ichs will, ! aber was bringt nun die dimension?

    EDIT2: Hab noch eine frage, wie kann ich mit diesem funktionsaufruf auch zeilenumbrüche in einer textarea bewirken?
    Geändert von Subwoover (23.09.03 um 10:51 Uhr)
     

  5. #5
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    Was die Dimension bringt?
    Probier's mal ohne. Bei mir hat's nicht geklappt!
    Wenn's doch ohne klappen sollte, kannst du die natürlich auch weg lassen. Aber, wie gesagt, bei mir funktioniert es nicht ohne. - ?!
    Ohne diese Dimension kam bei mir die Meldung "das Objekt unterstützt diese Eigenschaft oder Methode nicht!"
    Deswegen hab' ich die hinten drann gehängt, und siehe da, es klappt.
    Wenn du die Felder in deiner Form alle mit einem unterschiedlichem Namen versehen hast, sollte es ausreichen immer 'ne 0 hinten drann zu hängen.

    Den Zeilenumbruch in TextAreas kriegst du folgendermaßen hin:

    häng dort, wo der Umbruch statt finden soll einfach folgendes an:

    "\n"

    also z. B.:

    "smilies\n"
    oder
    "\nsmilies\n"
    oder
    "smiley_1\nsmiley_2"

    Mit anderen Worten: du kannst das "\n" überall hin setzten. Auch mitten in den Text.

    P.S.:
    Das gleiche geht auch mit Tabulatoren u. ä. (z. B. "\t").
    Vielleicht mal bei SelfHTML reinschauen.
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  6. #6
    Registriert seit
    Apr 2002
    Ort
    Ingolstadt
    Beiträge
    2.940
    Hallo,

    zur Dimension: getElementsByName() liefert ein Array mit allen Elementen zurück, welche den gesuchten Namen haben. Wenn du jetzt z.B. 10 Felder mit dem Namen "eMail" hättest, könntest du die einzelnen Elemente mit dem Index (0-9) ansprechen. Wenn alle Namen bei dir auf der Seite einzigartig sind, dann liefert getElementsByName() nur "1-elementige-Arrays" zurück - aber trotzdem als Array - und auf Arrays kannst du nur mit Indiezes zugreifen, daher [0] für das erste (und evtl einzige) Element. Wenn du den Feldern eine ID zuordnest (welche im Dokument einzigartig sein muss) und die Felder dann mit getElementById() ansprichst kannst du dir die Dimension sparen....

    ciao Andreas
     

  7. #7
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    Ahhh, deswegen! Verstehe!
    Tja, dann würde ich doch lieber auf die getElementByID() zurückgreifen.
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  8. #8
    Subwoover Subwoover ist offline Mitglied Platin
    Registriert seit
    Dec 2001
    Ort
    Wien
    Beiträge
    532
    nun vielen dank für die information
    Wieda was gelernt

    emmm ja wenn das mit \n funktionieren würd, hätt ich gar nicht gefragt! Das weiß ich ja dass das normalerweise mit \n hinhaut, aber in meinem fall irgendwie nicht

    Er ersetzt das \n durch "", also aus dem gedachten zeilenumbruch wird einfach nichts.
    help pls, probiert mal, vielleicht mach ich ja was falsch:
    Code :
    1
    
    [<a href=\"javascript:setsmile('preise','Montag: \n Dienstag:\nblabla\n')\">Vorlage</a>]

    EDIT: wenn ichs direkt ins script einbau dann funktionierts! also so:
    Code :
    1
    2
    3
    4
    5
    
    function setsmile(ename, icon){
    var elem = document.getElementsByName(ename)[0];
    elem.value = elem.value+icon + "\n";
    elem.focus();
    }

    hmpf, wills aber schon mit den argumenten mitgeben...

    EDIT: ICH HABS! sorry... war eh klar.... wenn ich das ganze mit php ausgebe dass das erste backslash entwertet wird
    Geändert von Subwoover (24.09.03 um 11:42 Uhr)
     

Ähnliche Themen

  1. Bionade erstes Werk
    Von Neuling08 im Forum 3D-Stills
    Antworten: 8
    Letzter Beitrag: 18.08.08, 17:02
  2. Erstes Werk ^^
    Von color-web im Forum Fotografie
    Antworten: 0
    Letzter Beitrag: 08.03.07, 10:15
  3. E-Werk bei Mittweida
    Von Blaschki im Forum Fotografie
    Antworten: 5
    Letzter Beitrag: 30.05.06, 02:08
  4. Euer beste Werk
    Von Nakidai im Forum Smalltalk
    Antworten: 10
    Letzter Beitrag: 17.06.05, 23:52
  5. **** am werk
    Von AvS im Forum Cinema 4D
    Antworten: 6
    Letzter Beitrag: 21.04.02, 15:46