Avatar billede boxer Praktikant
01. september 2009 - 18:55 Der er 8 kommentarer og
1 løsning

Submitte textarea on enter. Linieskift ved shift + enter

Hejsa,

Jeg har en fungerende form med et textarea og en submit button.
Så langt så godt :o)

Jeg kunne godt tænke mig at lave det ala msn messenger hvor et linieskift er shift + enter og sende beskeden er enter.

Hvordan gør jeg?
Avatar billede olebole Juniormester
01. september 2009 - 19:45 #1
<ole>


<script type="text/javascript">
function foo(e, o) {
    if (!e.shiftKey && e.keyCode==13) {
        o.form.submit();
        if (e.preventDefault) e.preventDefault();
        if (e.stopPropagation) e.stopPropagation();
        e.cancelBubble = true;
        e.returnValue = false;
    }
}
</script>

<textarea onkeydown="foo(event, this)" name="myTxt" cols="30" rows="8"></textarea>



/mvh
</bole>
Avatar billede olebole Juniormester
01. september 2009 - 19:46 #2
=)
Avatar billede boxer Praktikant
01. september 2009 - 20:24 #3
Hej Ole,

Det virker, men jeg har vist lidt svært ved at få det implementeret. Der må være et eller andet jeg skal tilrette.
Du får lige en stump af den kode der bruges nu:
<textarea onkeydown="foo(event, this)" name="message" id="mChatMessage" rows="3" cols="60" tabindex="1"></textarea><br />
<input type="button" class="mChatButton" onclick="mChat.add();" tabindex="2" value="{L_MCHAT_ADD}" />
Avatar billede boxer Praktikant
01. september 2009 - 20:26 #4
Det ville sq nok være en god ide hvis jeg lige uddyber hvad der ikke fungerer = den vil ikke submitte på enter
Avatar billede olebole Juniormester
01. september 2009 - 20:45 #5
Det er ikke ud til, der er noget, som skal submittes - men en funktion, der skal kaldes  =)


<script type="text/javascript">
function foo(e) {
    if (!e.shiftKey && e.keyCode==13) {
        mChat.add();
        if (e.preventDefault) e.preventDefault();
        if (e.stopPropagation) e.stopPropagation();
        e.cancelBubble = true;
        e.returnValue = false;
    }
}
</script>

<textarea onkeydown="foo(event)" name="message" id="mChatMessage" rows="3" cols="60" tabindex="1"></textarea>
Avatar billede boxer Praktikant
01. september 2009 - 20:59 #6
Perfekt, næsten :o)
Det virker, men cursoren i textfeltet placeres nu på linie 2 efter beskeden er sendt.
Det er kun kosmetisk, så det skal ikke være det store problem.
Kan det fikses?
Avatar billede olebole Juniormester
02. september 2009 - 10:51 #7
Aner det ikke. Jeg kan ikke se det  =)
Avatar billede boxer Praktikant
02. september 2009 - 13:20 #8
Det sker kun i Firefox og jeg tror det er pga. den bug der er i Firefox med antallet af rows = Firefox viser en ekstra.

Tak er kun et fattigt ord, så du får lige lidt point også :o)
Avatar billede olebole Juniormester
02. september 2009 - 14:03 #9
Selvtak og tak for points. Jeg er desværre nødt til at se det i brug, hvis jeg skal gennemskue cursor-tingen  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester