Wechselnder Wert bei Klick auf Button

Hallo liebe Community,
nach dem ich die Suche benutzt habe und ich kein passendes Stichwort für mein Problem gefunden habe muss ich euch wohl oder übel doch nerven.

Wie viele schon vor mir arbeite ich an einem Script das Text in eine Textarea einfügt. Das ist soweit auch kein Problem.
Ich möchte jetzt aber,dass wenn der User den Button \"Breit\" gedrückt hat, das script \"b\" in das Textarea schreibt. Wenn der User jetzt nochmal \"Breit\" drückt dann soll er aber \"/b\" rein schreiben. Also ein wechsel. Könnt ihr mir da weiterhelfen wie ich das realisiere.
Ich gebe zu das ich von javascript keine Ahung habe und deshalb leider auf eure Hilfe angewiesen bin :)
Danke im vorraus,
mfg,chris
 
Zuletzt bearbeitet:
PHP:
var opentag_wide = false;
// hier Variablen für andere Attribute

function press_tag_wide() {
  if (opentag_wide==true) {
    // Tag für "breit" schließen
  } else {
    // Tag für "breit" öffnen
  }
  opentag_wide = !opentag_wide;
}
Um nicht für jeden Button eine eigene Funktion schreiben zu müssen, würde ich die Buttons durchnummerieren (z.B. im Name-Attribut), und die Tag-Flags als Array definieren. Aber das wäre hier als Ausschnitt etwas zu unübersichtlich.

Gruß
 
Bin doch an dem Punkt an dem ich glaub ich den von dir beschrieben Schritt machen muss.

Wenn ich .fett drücke und danach .center wird das center nicht geöffnet sondern beinhaltet den geschlossenen Tag.

Könntet ihr mir vielleicht noch sagen wie ich sowas durch nummeriere?

Ich beabsichte ja keine großen Editor nur um Text zu formatieren und ein paar Sachen einzufügen. Deswegen nicht der große Aufwand.
 
Hi,

hier mal ein Beispiel mit mehreren Tags. Falsch verschachtelte Tags werden aber nicht überprüft!
PHP:
<script language="JavaScript" type="text/javascript">
var tag_flag = new Array();
var open_tag = new Array();
var close_tag = new Array();

for (i=1; i<=4; i++) {
    tag_flag[i]=false;
}

open_tag[1]="[BOLD]";
open_tag[2]="[ITALIC]";
open_tag[3]="[QUOTEIT]";
open_tag[4]="[WHATEVER]";
close_tag[1]="[/BOLD]";
close_tag[2]="[/ITALIC]";
close_tag[3]="[/QUOTEIT]";
close_tag[4]="[/WHATEVER]";

function set_flag(obj) {
  var tagtype=parseInt(obj.name);
  if (tag_flag[tagtype]==false) {
    document.getElementById("textarea").value+=open_tag[tagtype];
  } else {
    document.getElementById("textarea").value+=close_tag[tagtype];
  }
  tag_flag[tagtype] = !tag_flag[tagtype];
}
</script>
<body>
  <input name="1" type="button" id="b1" value="bold" onClick="set_flag(this)">
  <input name="2" type="button" id="b2" value="italic" onClick="set_flag(this)">
  <input name="3" type="button" id="b3" value="quote" onClick="set_flag(this)">
  <input name="4" type="button" id="b4" value="whatever" onClick="set_flag(this)">
  <br>
  <textarea name="textarea" cols="48" rows="8" wrap="VIRTUAL"></textarea>
</body>

Gruß
 

Neue Beiträge

Zurück