2012-01-19 4 views
21

명백한 이유로 텍스트 대신 텍스트 영역을 사용하는 채팅이 있습니다. 이것이 회원들이 ENTER를 누를 때마다 메시지를 보내는 대신 줄 바꿈을하는 이유입니다. 나는 이것을 바꾸고 싶다. 그래서 ENTER를 누를 때마다 = 메시지를 제출하고 커서는 다음 메시지 입력을 위해 textarea로 돌아 간다. 나는이 사이트에서 발견 된 다른 코드를 시도해 봤는데, 대부분의 didnt 작업과 무언가를 한 것처럼 보인 사람들은 페이지를 새로 고치기 만하고 나는 빈 페이지가있다.텍스트 영역에 "Enter"키를 만드는 방법 양식을 제출하십시오

내 코드 :

<form name="message" action=""> 
    <textarea name="usermsg" autocomplete="off" type="text" id="usermsg" rows="4" cols="30" style="width: 450px; margin-left: 25px;"> 
    </textarea> 
    <br/> 

    <p style="margin-left: 420px;"><input name="submitmsg" type="submit" id="submitmsg" value="Send" /></p> 
</form> 

당신의 시간 주셔서 대단히 감사합니다.

+1

어떤 프로그래밍 언어를 당신이? HTML에 대해 이야기하고 있습니다 시도? – gorootde

+0

PHP는 프로그래밍 언어입니다. – Ingrid

+1

프로그래밍 언어 –

답변

15

내가 jQuery를 함께 작업을 수행하는 방법에 대한 예제와 keypress 기능과 which 재산으로 jsfiddle을 만들었습니다 가능하다면.

$(function() { 
    $("#usermsg").keypress(function (e) { 
     if(e.which == 13) { 
      //submit form via ajax, this is not JS but server side scripting so not showing here 
      $("#chatbox").append($(this).val() + "<br/>"); 
      $(this).val(""); 
      e.preventDefault(); 
     } 
    }); 
}); 
+0

Anders,이 방법은 작동하지만 메시지는 잠시 동안 만 머물면서 채팅에서 사라집니다. – Ingrid

+0

좋아, 내 채팅에 맞게 편집 한 코드가 완벽하게 작동합니다. 감사합니다. 가장 친절했습니다. – Ingrid

+0

기꺼이 도와 드리겠습니다. :) –

5

글쎄, 당신이 간단한 사용자의 입력 필드에 리스너 것 jQuery를 사용하고 랬 :

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#usermsg').keypress(function(e){ 
     if(e.which == 13){ 
      // submit via ajax or 
      $('form').submit(); 
     } 
    }); 
}); 
</script> 

당신의 HTML 헤드에서이 추가 : < 전에 바닥 글에

/몸 >

하지만 js 또는 jquery가 질문에서 벗어난 경우 질문을 업데이트하여 구체적으로 제외하십시오. http://jsfiddle.net/GcdUE/는이보다 더 많은 요구를 정확히 확인

하지, 그래서 더 질문을 지정하십시오

+0

나는 그것을 시도했지만 작동하지 않는 또는 단순히 어떻게 그것을 올바르게 수행할지 모르겠다. 코드에서 뭔가를 변경해야합니까? ty – Ingrid

+0

답변을 업데이트했습니다. 죄송합니다. 귀하의 ID를 텍스트 영역에 추가하는 것을 잊었습니다. –

+0

좋아, 이제는 반응이 있었지만 제대로 삽입 한 것처럼 보이지만 새로 고침과 같은 빈 페이지가 표시됩니다. – Ingrid

-2

사용 <input type=text> 대신 <textarea>. 그러면 훨씬 더 좋은 기회가 생깁니다. textarea에서 Enter 키를 누르면 문자가 아닌 텍스트가 줄 바꿈된다는 의미입니다.

+0

그래, 나도 알아, 그것은 텍스트지만, 더 긴 게시물이 (이 코멘트 상자 에서처럼) 한 줄을 가지고 만들 채팅에 문제가있어. 답변 할 시간을내어 주셔서 감사합니다. – Ingrid

19

이 (제출 이동 ENTER하지만, SHIFT + 새 줄을 이동 Enter 키를 누르면.

$("#textareaId").keypress(function (e) { 
    if(e.which == 13 && !e.shiftKey) {   
     $(this).closest("form").submit(); 
     e.preventDefault(); 
     return false; 
    } 
}); 
+0

당신은 신이 고맙습니다 !! –

관련 문제