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.