Robert R.: Tabulator an der Cursorposition einfügen

Liebe Mitdenker,
liebe Wissende,
liebe Neugierige,

ja!

kann mir jemand eine Kurzanleitung geben, wie ich in einer Webseite mittels JavaScript-Button an der Cursorposition in einer Textarea einen Tabulator einfügen kann?

Oder gibt es eine andere Möglichkeit? Hotkey im Browser oder so?

Spirituelle Grüße
Euer Robert

--
Möge der Forumsgeist wiederbelebt werden!
  1. Aloha ;)

    Wenn du als "Anwender" sprichst: Auch dieses Problem hatten schon andere.

    Grüße,

    RIDER

    --
    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
    ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
    1. Liebe Mitdenker,
      liebe Wissende,
      liebe Neugierige,

      ja!

      Wenn du als "Anwender" sprichst: Auch dieses Problem hatten schon andere.

      Ich kann da keine Lösung entdecken, nur weitere Verzweifelte.

      Spirituelle Grüße
      Euer Robert

      --
      Möge der Forumsgeist wiederbelebt werden!
      1. Aloha ;)

        Wenn du als "Anwender" sprichst: Auch dieses Problem hatten schon andere.

        Ich kann da keine Lösung entdecken, nur weitere Verzweifelte.

        Dann schau genauer. In den Antworten ist die Anleitung für Firefox (Add-On), sowie für alle Browser unter Windows (ALT + 09) und Linux (Ctrl+Shift+U9) und OS X / Firefox (Ctrl+Optn+Tab) gegeben. Was benutzt du, dass da für dich keine Lösung dabei ist? Außerdem, wie auch ein Antwortgeber geschrieben hat: Du kannst ein "Tab" im Texteditor markieren, kopieren und dann mit STRG+V einfügen. Das sollte überall tun. Sogar unter Android.

        So what?

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
        ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
        1. Liebe Mitdenker,
          liebe Wissende,
          liebe Neugierige,

          ja!

          Wenn du als "Anwender" sprichst: Auch dieses Problem hatten schon andere.

          Ich kann da keine Lösung entdecken, nur weitere Verzweifelte.

          Dann schau genauer. In den Antworten ist die Anleitung für Firefox (Add-On), sowie für alle Browser unter Windows (ALT + 09) und Linux (Ctrl+Shift+U9) und OS X / Firefox (Ctrl+Optn+Tab) gegeben. Was benutzt du, dass da für dich keine Lösung dabei ist? Außerdem, wie auch ein Antwortgeber geschrieben hat: Du kannst ein "Tab" im Texteditor markieren, kopieren und dann mit STRG+V einfügen. Das sollte überall tun. Sogar unter Android.

          Jeder, der die Seite mit eingeschaltetem JavaScript benutzt, soll die Möglichkeit haben.
          Was soll ich da mit "Du kannst ein 'Tab' im Texteditor markieren, kopieren und dann mit STRG+V einfügen." ?

          Ich kann den User die Daten auch per snail-mail schicken lassen. Bei Dialogen ist das immer nur so problematisch mit der Latenz. ;-P

          Spirituelle Grüße
          Euer Robert

          --
          Möge der Forumsgeist wiederbelebt werden!
  2. Liebe Mitdenker,
    liebe Wissende,
    liebe Neugierige,

    ja!

    Und noch eine JavaScript-Frage:

    wie kann ich in einer JS-Funktion, die per onSubmit im <Form> aufgerufen wurde, feststellen, wie der Name oder die ID des auslösenden Buttons war?

    Ich hab schon eine Menge ins Blaue gestochert, aber bisher nicht getroffen...

    Spirituelle Grüße
    Euer Robert

    --
    Möge der Forumsgeist wiederbelebt werden!
    1. Aloha ;)

      wie kann ich in einer JS-Funktion, die per onSubmit im <Form> aufgerufen wurde, feststellen, wie der Name oder die ID des auslösenden Buttons war?

      Imho gar nicht. Zumindest nicht sicher. Also: Wenn du zwei submit-Buttons hast, kannst du nicht sagen, welcher geklickt wurde. Außer, du lässt das zuerst per onclick feststellen. Also zumindest nicht innerhalb onsubmit.

      Wenn du nur die ID/Name (oder doch noch besser: eine direkte Referenz zum DOM-Element) haben willst, kannst du so vorgehen:

      Dein Formular ist im Event gespeichert - dieses bekommst du, wenn du den Eventhandler etwa so anlegst:

      meinFormular.addEventListener('submit',function(e){ [...] });

      Bzw., wenns im HTML verankert ist entsprechend so, dass beim Aufruf der Parameter e übergeben wird.

      Das e ist das event-Objekt. Dein Formular ist e.srcElement. Submit-Buttons sind dann in folgender Liste gespeichert:

      e.srcElement.querySelectorAll('input[type=submit],button[type=submit]')

      Ich hab schon eine Menge ins Blaue gestochert, aber bisher nicht getroffen...

      Ich hoffe getroffen zu haben ;)

      Grüße,

      RIDER

      --
      Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
      ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
    2. Hakuna matata!

      wie kann ich in einer JS-Funktion, die per onSubmit im <Form> aufgerufen wurde, feststellen, wie der Name oder die ID des auslösenden Buttons war?

      Interessanter Fall, es wundert mich, dass es dafür keine einfache Lösung gibt, aber hier ist mein Vorschlag: Gib den Submit-Buttons jeweils Namen und Werte:

      <button name="submit" value="whooopwhooop">  
      <button name="submit" value="olala">
      

      Beim Absenden des Formulars wird das Schlüssel/Werte-Paar des verwendeten Buttons in die HTTP-Anfrage einkodiert. An dieser Stelle könntest du dich einhooken, um den Button zu erfragen:

      form.addEventListener('submit', function ( submitEvent ) {  
        
         var formData = new FormData( submitEvent.target );  
         // formData ist eine Liste aller Schlüssel/Werte-Paare, die übertragen werden  
        
         var submitButtonValue = formData.get('submit');  
         // "whooopwhooop" oder "olala"?  
        
         var submitButton = submitEvent.target.querySelector('button[name=submit][value='+submitButtonValue+']');  
        
      });
      
      --
      “All right, then, I'll go to hell.” – Huck Finn
      1. Liebe Mitdenker,
        liebe Wissende,
        liebe Neugierige,

        ja!

        wie kann ich in einer JS-Funktion, die per onSubmit im <Form> aufgerufen wurde, feststellen, wie der Name oder die ID des auslösenden Buttons war?

        Interessanter Fall, es wundert mich, dass es dafür keine einfache Lösung gibt, aber hier ist mein Vorschlag: Gib den Submit-Buttons jeweils Namen und Werte:

        Mit jquery gibt es ein paar Lösungen, aber die haben dann doch jede Menge Overhead :-(

        <button name="submit" value="whooopwhooop">

        <button name="submit" value="olala">

        
        >   
        > Beim Absenden des Formulars wird das Schlüssel/Werte-Paar des verwendeten Buttons in die HTTP-Anfrage einkodiert. An dieser Stelle könntest du dich einhooken, um den Button zu erfragen:  
        >   
        > ~~~javascript
        
        form.addEventListener('submit', function ( submitEvent ) {  
        
        >   
        >    var formData = new FormData( submitEvent.target );  
        >    // formData ist eine Liste aller Schlüssel/Werte-Paare, die übertragen werden  
        >   
        >    var submitButtonValue = formData.get('submit');  
        >    // "whooopwhooop" oder "olala"?  
        >   
        >    var submitButton = submitEvent.target.querySelector('button[name=submit][value='+submitButtonValue+']');  
        >   
        > });
        
        

        Das muss icb mir nochmal genauer reinziehen. Ich hatte auch keinen <button>, sondern ein <input type="submit" name="buttonname" value="blah"> im Auge. Das Value-Attribut will ich lieber nicht auswerten, weil es sprachabhängig ist. Das würde das Programm unnötig komplizieren. Eine eigene ID pro <input ...> wäre aber leicht möglich.

        Bitte nicht lachen. Die Lösung war viel einfacher.

        Ich habe die weiteren Submit-Buttons wegrationalisiert, indem ich sie durch als Button gestylte Links ersetzt habe. Wenn nichts submittet werden muss, brauchts auch keinen Input-Button dafür. Das passt auch besser ins Gesamtkonzept. Und wenn submittet wird, sollen vorher bestimmte Dinge geprüft werden, z.B. die zulässige Filesize für den Upload. Das klappt nun und wenn abgebrochen wird, reicht der Link zurück aus der Detaildarstellung in die Liste. Die muss dann sowieso neu angefordert werden.

        Danke Dir auf jeden Fall für die Nachhilfe. Ich übe das dann nochmal separat :-)

        Spirituelle Grüße
        Euer Robert

        --
        Möge der Forumsgeist wiederbelebt werden!
        1. Hakuna matata!

          Das muss icb mir nochmal genauer reinziehen. Ich hatte auch keinen <button>, sondern ein <input type="submit" name="buttonname" value="blah"> im Auge. Das Value-Attribut will ich lieber nicht auswerten, weil es sprachabhängig ist.

          Das ist eben ein typischer Nachteil von input[type=submit]. Mit einem <button> ergäbe sich dieses Problem nicht, denn da ist die Beschriftung unabhängig von dessen Wert.

          Das würde das Programm unnötig komplizieren. Eine eigene ID pro <input ...> wäre aber leicht möglich.

          Aber nutzlos, weil die id bei der Übertragung nicht als Schlüssel kodiert wird. Dafür ist das name-Attribut da.

          Bitte nicht lachen. Die Lösung war viel einfacher.

          Ich habe die weiteren Submit-Buttons wegrationalisiert, indem ich sie durch als Button gestylte Links ersetzt habe.

          Okay, ob das benutzerfreundlich und semantisch sinnvoll ist, kann man deinem Eröffnungsposting leider nicht entnehmen. Demnächst fängst du besser mit einer Problembeschreibung an, und nicht mit dem, was du für die Lösung hälst, dann hätte man dich vermutlich schon vorher darauf stoßen können, dass Submit-Buttons eventuell unpassend sind.

          Es gibt übrigens nicht nur Submit-Buttons und Links, es gibt auch gewöhnliche Buttons: <button type="button">

          Eigentlich ist [type=button] die Voreinstellung von <button>-Elementen, es sei denn der <button> steht innerhalb eines <form>-Elements. In diesem Fall ist [type=submit] die Grundeinstellung und man muss [type=button] ausdrücklich angeben, wenn der Button das Formular nicht abschicken soll.

          --
          “All right, then, I'll go to hell.” – Huck Finn