jQuery는 텍스트를 얻는다


486

최근에 jQuery로 게임을 시작했으며 몇 가지 튜토리얼을 따르고 있습니다. 이제 나는 그것을 사용하는 것에 약간의 유능함을 느낍니다 (꽤 쉽습니다). 내 웹 페이지에서 '콘솔'을 만들 수 있다면 멋지다고 생각했습니다 ( FPS 게임 에서와 같이 '키를 누르십시오 . 그런 다음 Ajax 자체를 서버에 다시 가져 와서 작업하십시오.

나는 원래 가장 좋은 방법은 텍스트 영역 안에 텍스트를 가져 와서 나누거나 키 업 이벤트를 사용해야하는 경우 ASCII 문자로 반환 된 키 코드를 변환하고 문자를 문자열에 추가하고 문자열을 보내는 것입니다 서버 (문자열을 비 웁니다).

텍스트 영역에서 텍스트를 가져 오는 방법에 대한 정보를 찾을 수 없었습니다. 키업 정보 만 있으면됩니다. 또한 반환 된 키 코드를 ASCII 문자로 변환하는 방법은 무엇입니까?

답변:


713

키 스트로크를 텍스트로 변환하려는 이유는 무엇입니까? 클릭하면 텍스트 영역 안의 텍스트를 서버로 보내는 버튼을 추가하십시오. 포스터가 지적한대로 value 속성을 사용하거나 jQuery의 API를 사용하여 텍스트를 가져올 수 있습니다.

$('input#mybutton').click(function() {
    var text = $('textarea#mytextarea').val();
    //send to server and process response
});

2
텍스트 영역에는 필요한 텍스트보다 더 많은 내용이 포함되기 때문입니다. (콘솔이며 명령 프롬프트를 시각화합니다). val 함수에 대한 정보를 주셔서 감사합니다. :)
RodgerB

자바 스크립트를 사용하여 텍스트를 처리 할 수 ​​있습니다. 키 스트로크 코드를 반환하는 요점은 무엇입니까?
Eran Galperin

요점은 키 스트로크 코드를 얻는 것이 텍스트 영역을 구분 기호로 분할하는 것보다 효율적입니다 (그림은 가능한 많은 텍스트 배열).
RodgerB

2
죄송합니다, 그게 사실 인 시나리오를 시각화하지 못했습니다 ... 아마도 원래 게시물을 편집하고 예를 추가 한 경우 사람들이 대답을 시도하는 데 도움이 될 것입니다.
Eran Galperin

나는 html 태그 ID의 '텍스트 영역'부분 뿅 잊어
Yasith Prabuddhaka

36

자주 사용하는 텍스트 기능 (예 : div 등) 인 경우 텍스트 영역의 경우 val입니다

가져 오기:

$('#myTextBox').val();

세트:

$('#myTextBox').val('new value');

24

콘솔 메시지, 즉 이전 명령 및 해당 출력 만 포함하는 div가 있어야합니다. 그리고 그 아래에는 입력하는 명령 만 보유하는 입력 또는 텍스트 영역을 넣으십시오.

-------------------------------
| consle output ...           |
| more output                 |
| prevous commands and data   |
-------------------------------
> This is an input box.

이렇게하면 처리를 위해 입력 상자의 값을 서버로 보내고 결과를 콘솔 메시지 div에 추가합니다.


예, 정확히 내가 생각한 것입니다. 출력에서 입력을 구문 분석하거나 (어리석은 시도-사용자가 일부 "output"을 입력하는 경우 어떻게해야합니까) 키 입력 이벤트에서 문자열을 작성하려고 시도하지 않는 유일한 깨끗한 솔루션입니다 (어리 석음 -백 스페이스 등은 어떻습니까?).
Nick Perkins

3
SO의 또 다른 XY 문제. 이것은 분명히 그의 문제의 'X'에 대한 최상의 솔루션입니다.
Reimius

14

일반적으로 value 속성입니다.

testArea.value

아니면 내가 필요한 것에 빠진 것이 있습니까?


실제로 텍스트 변경 이벤트 또는 줄을 따라 무언가가 호출되기를 바랍니다 (어쨌든 키 업 이벤트 로이 작업을 쉽게 수행 할 수 있음). 키 업 이벤트를 계속 사용한다고 생각하지만 키 코드를 ASCII 문자로 변환하는 방법을 알고 있습니까? 감사. :)
RodgerB

8

다음 함수를 사용하여 이벤트의 keyCode를 문자로 변환 할 수 있다는 것을 알았습니다.

var char = String.fromCharCode(v_code);

그런 다음 문자를 문자열에 추가하고 Enter 키를 누르면 문자열을 서버로 보냅니다. 내 질문이 다소 비밀스러워 보였고 제목이 거의 완전히 주제가 아닌 것을 의미하는 경우 미안합니다. 아침이 빠르고 아직 아침을 먹지 않았습니다.).

모든 도움을 주셔서 감사합니다.


7

"콘솔"이라는 단어가 혼란을 야기합니다.

이전 스타일의 전이중 / 반이중 콘솔을 에뮬레이트하려면 다음과 같이 사용하십시오.

$('console').keyup(function(event){
    $.get("url", { keyCode: event.which }, ... );
    return true;
});

눌린 키가있는 event. 백 스페이스 처리의 경우 event.which === 8.



0

텍스트 영역 값 및 코드 문자 변환을 읽으십시오.

그리고 div-s에서만 콘솔 과 같은 멋진 Quake 아래 :)


0

이름과 ID로 텍스트 영역 데이터를 얻을 수 있습니다

// by name
<textarea name="comment"></textarea>
let text_area_data = $('textarea[name="comment"]').val();

// by id
<textarea id="comment" name="comment"></textarea>
let text_area_data = $('textarea#comment').val();
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.