<textarea> per ENTER senden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • <textarea> per ENTER senden

    Hallöchen,

    ich hab eine Art Chat gebaut.
    Jetzt möchte ich dass das Textfeld (<textarea>) per ENTER-Taste gesendet wird.

    Wie kann ich das am besten machen?

    Wenn das Thema schonmal behandelt wurde nehm ich auch gern den Link. In der Suche hab ich aber nicht gefunden was ich suche.

    Gruß Nordin

  • #2
    da geht höchstens mit javascript. allerdings besteht immer noch das problem, dass jemand einen zeilenumbruch einfügen möchte und dann sein unvollständiger post bereits gesendet wird.

    tipp: nimm dafür input-felder.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      hmm und wenn man prüft:

      wenn shift und enter gecklick machnichts (ausser zeilenumbruch)...
      wenn enter allein geklickt sende das formular...

      würde man das hinbekommen?

      Kommentar


      • #4
        wenn überhaupt, dann nur mit JS ... aber mal im ernst ... wenn das eine "art chat" sein soll, nimmt man für gewöhnlich normale textfelder für die eingabe ...
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Mit javascript ist mir schon bewusst....

          Im Grunde ist das kein chat sondern eine art Messenger alá Skype,MSN,ICQ und so....
          Darum würde ich das ganze schon mit einer textarea lösen wollen.

          Kommentar


          • #6
            Naja, dann guck dir halt mal die Eventhandler von JS an. Da gibt es auch einen, der auf Tasten (Keys) reagiert.

            Dann musst du nur noch überprüfen, welche Taste gedrückt wurde und gut ist.

            Kommentar


            • #7
              Code:
              element.onkeydown = function(e){
               e = e || window.event;
               var key = e.keyCode || e.which || e.charCode, Shift = Event.SHIFT_MASK || e.shiftKey
               /*, Alt = Event.ALT_MASK || e.altKey, Ctrl = Event.CONTROL_MASK || e.ctrlKey*/;
               if(key == 13 && !Shift){
                send();
                return false;
               }
              }

              Kommentar


              • #8
                @jmc

                Das sieht ganz gut aus kann es auch teilweise nachvoll ziehen nachdem ich jetzt schon stunden versucht und gemacht habe aber wie wende ich das auf meine textarea an?

                Kommentar


                • #9
                  "element" ist in diesem Fall deine Textarea, also z.B. per getElementById z.B.

                  Code:
                  document.getElementById("id_meiner_textarea").onkeydown = function(e){
                   e = e || window.event;
                   var key = e.keyCode || e.which || e.charCode, Shift = Event.SHIFT_MASK || e.shiftKey;
                   if(key == 13 && !Shift){
                    send();
                    return false;
                   }
                  }
                  Das im Kommentar im oberen Beitrag genannte wäre nur für den Fall, dass du noch andere Kombinationen mit ctrl oder alt verwenden wolltest. Was genau kannst du noch nicht nachvollziehen, ich erkläre es dir gerne...

                  Kommentar


                  • #10
                    Wenn ich es jetzt so mache:

                    Code:
                    <script type="text/javascript">
                    	document.getElementById("nachricht").onkeydown = function(e){
                    	 e = e || window.event;
                    	 var key = e.keyCode || e.which || e.charCode, Shift = Event.SHIFT_MASK || e.shiftKey;
                    	 if(key == 13 && !Shift){
                    	  send();
                    	  return false;
                    	 }
                    	}
                    </script>
                    Code:
                    <textarea id="nachricht" name="nachricht" style="height:70px; width:375px;" ></textarea>
                    Bekomme ich nen scriptfehler dass document.getElementById() null oder kein objekt ist...

                    Was mache ich falsch?

                    Kommentar


                    • #11
                      Das Element muss bereits existieren, bevor du mit getElementById() darauf zugreifen kannst.

                      Kommentar


                      • #12
                        öhm ich glaub ich brauch nen bischen nachhilfe in sachen javascript...

                        dieses script gehört doch eigendlcih in den header oder sehe ich dass falsch? wenn es im header gehört dann kann doch das element noch nicht existieren oder?

                        //Edit

                        ich hab es jetzt unter die textarea gemacht nun scheint es zu funktionieren...
                        Womit ich jetzt nur noch ein problem hab: was ist mit "Event.SHIFT_MASK" gemeint? Bzw. für was steht "SHIFT_MASK"
                        Zuletzt geändert von Nordin; 06.05.2008, 01:59.

                        Kommentar


                        • #13
                          Schonmal SHIFT_MASK bei Google gesucht?

                          Kommentar


                          • #14
                            Mittlerweile ja... wenn ich richtig gegoogelt hab bedeutet das dass
                            Event.SHIFT_MASK wird bei der SHIFT-Taste ausgelöst.

                            Ich bekomme dort aber einen Fehler: EVENT ist undefiniert

                            Kommentar


                            • #15
                              Muss afaik auch e.SHIFT_MASK heißen.
                              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                              Kommentar

                              Lädt...
                              X