OnClick -> zurück

d4k4

Erfahrenes Mitglied
jo also mit

PHP:
function produkt()
{
document.form.text.value = document.form.text.value + 'Produkt1 ';
}
function produkt1()
{
document.form.text.value = document.form.text.value + 'Produkt2 ';
}
function produkt2()
{
document.form.text.value = document.form.text.value + 'Produkt3 ';
}
function produkt3()
{
document.form.text.value = document.form.text.value + 'Produkt4 ';
}
function produkt4()
{
document.form.text.value = document.form.text.value + 'Pordukt5 ';
}

füg ich smilies in ein textfeld ein. jetzt hätt ich gern, das man bei erneutem klicken auf den smilies ihn wieder aus dem textfeld entfernt. gibt es da möglichkeiten?
 
a)
PHP:
function produkt()
{
document.form.text.value += 'Produkt1';
}
function produkt1()
{
document.form.text.value += 'Produkt2 ';
}
function produkt2()
{
document.form.text.value += 'Produkt3';
}
function produkt3()
{
document.form.text.value += 'Produkt4 ';
}
function produkt4()
{
document.form.text.value += 'Produkt5';
}
ist die gekürzte gleiche Variante. :)

b)
Kannst du mit einem Counter realisieren... :)
PHP:
<script type="text/javascript">
<!--
function produkt() {
    if (!count) {
        document.form.text.value += 'Produkt1';
        count = 1;
    } else if (count == 1) {
        document.form.text.value -= 'Produkt1';
        delete count;
    }
}
function produkt1() {
    if (!count) {
        document.form.text.value += 'Produkt2';
        count = 1;
    } else if (count == 1) {
        document.form.text.value -= 'Produkt2';
        delete count;
    }
}
function produkt2() {
    if (!count) {
        document.form.text.value += 'Produkt3';
        count = 1;
    } else if (count == 1) {
        document.form.text.value -= 'Produkt3';
        delete count;
    }}
function produkt3() {
    if (!count) {
        document.form.text.value += 'Produkt4';
        count = 1;
    } else if (count == 1) {
        document.form.text.value -= 'Produkt4';
        delete count;
    }
}
function produkt4() {
    if (!count) {
        document.form.text.value += 'Produkt5';
        count = 1;
    } else if (count == 1) {
        document.form.text.value -= 'Produkt5';
        delete count;
    }
}
//-->
</ script>
(</ script> bitte zusammen)

Sollt hoffentlich so klappen...

hth,
Geist
 
Dachte eigentlich, dass das so gezielt interpretiert werden würde, kann aber auch sein, dass ich da Flash-Angewohnheiten und JavaScript-Usus ein wenig zu sehr aneinanderbringe. ;)

Dann mach jeweils mal
PHP:
var count = ...;
Also überall, aber vor den delete-Befehlen kannst du dir's sparen...

Das sollte restliche Unklarheiten für den Interpreter ausmerzen...hoffe ich. :p

Geist
 
das funktinoniert auch nicht :(
wenn ich var count mache, dann nimmt er es bei nochmaligem klicken nicht wieder zurück
 
hmn,arbeite doch einfach mit counter=1 oder counter=0
da kann dann nix schief gehen
function produkt1() {
if (count == 0) {
document.form.text.value += 'Produkt2';
count = 1;
} else if (count == 1) {
document.form.text.value -= 'Produkt2';
count = 0;
}
}
villeicht sollte count auch noch unterschiedliche Namen kriegen,sonst werden die falschen smilies entfernt
 
so ich habs jetzt so

PHP:
<script language="JavaScript">

count = 0;

function produkt() {
    if (count == 0){
        document.form.text.value += 'Produkt1';
        count = 1;
    } else if (count == 1) {
        document.form.text.value -= 'Produkt1';
        count = 0;
    }
}
function produkt1() {
    if (count == 0){
        document.form.text.value += 'Produkt2';
        count = 1;
    } else if (count == 1) {
        document.form.text.value -= 'Produkt2';
        count = 0;
    }
}
function produkt2() {
    if (count == 0){
        document.form.text.value += 'Produkt3';
        count = 1;
    } else if (count == 1) {
        document.form.text.value -= 'Produkt3';
        count = 0;
    }
}
function produkt3() {
    if (count == 0){
        document.form.text.value += 'Produkt4';
        count = 1;
    } else if (count == 1) {
        document.form.text.value -= 'Produkt4';
        count = 0;
    }
}
function produkt4() {
    if (count == 0){
        document.form.text.value += 'Produkt5';
        count = 1;
    } else if (count == 1) {
        document.form.text.value -= 'Produkt5';
        count = 0;
    }
}

wenn ich jetzt einmal klicke macht er ihn rein, und wenn ich nochmal klicke macht er ihn wieder raus.
ABER!
Er überschreit den text in der textarea mit NaN? was bedeutet das denn?
 
NaN heißt Not a Number
warum dieser Fehler da kommt weiß ich auch nicht. :(
Er taucht meistens auf wenn du eine Rechenoperation ausführst und "Wort + 5" rechnen willst
Aber Geist wirds schon wissen ;)
 
Argh, da müssen wir hier wohl was korrigieren. :)

Also entgegen meiner Vermutung, dass String-Teile mit "-=" entfernt werden können, ist eine Umkehrung des Konkatenationsoperators "+", bzw. "+=" für Strings nicht vorhanden, so dass es also nicht möglich ist, den hinzugeschriebenen Stringteil wieder so einfach zu entfernen.

Schätze, dass dazu dann doch eher mit Substrings gearbeitet werden muss...oder aber du speicherst, bevor du deinen Text nach dem ersten Klick einfügst, den vorigen Text ab und beim "Löschen" (Zweitklick) stellst du den eben wieder her.

hth,
Geist
 

Neue Beiträge

Zurück