ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
563
563
EMPFEHLEN
-
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
-
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."; ?>
-
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."; ?>
-
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)
-
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."; ?>
-
23.09.03 16:56 #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
-
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."; ?>
-
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
-
Bionade erstes Werk
Von Neuling08 im Forum 3D-StillsAntworten: 8Letzter Beitrag: 18.08.08, 17:02 -
Erstes Werk ^^
Von color-web im Forum FotografieAntworten: 0Letzter Beitrag: 08.03.07, 10:15 -
E-Werk bei Mittweida
Von Blaschki im Forum FotografieAntworten: 5Letzter Beitrag: 30.05.06, 02:08 -
Euer beste Werk
Von Nakidai im Forum SmalltalkAntworten: 10Letzter Beitrag: 17.06.05, 23:52 -
**** am werk
Von AvS im Forum Cinema 4DAntworten: 6Letzter Beitrag: 21.04.02, 15:46





Zitieren
Login





