jQuery get textarea text


486

最近、jQueryを使用し始め、いくつかのチュートリアルに従っています。今、私はそれを使用するのが少し上手だと感じています(かなり簡単です)。私のWebページに「コンソール」を作成できれば(たとえば、FPSゲームで行うように `キーを押して、など)、そしてAjax自体をサーバーに戻して何かを行います。

最初は、textarea内のテキストを取得してそれを分割するか、keyupイベントを使用して、返されたキーコードをASCII文字に変換し、文字を文字列に追加して、文字列をサーバー(文字列を空にする)。

テキストエリアからテキストを取得するための情報を見つけることができませんでした。キーアップ情報しか得られませんでした。また、返されたキーコードをASCII文字に変換するにはどうすればよいですか?

回答:


713

キーストロークをテキストに変換する理由は何ですか?クリックすると、textarea内のテキストをサーバーに送信するボタンを追加します。以前に指摘したように、value属性を使用してテキストを取得するか、jQueryのAPIを使用します。

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

2
textareaには必要なテキストだけが含まれるわけではないためです。(それはコンソールです、コマンドプロンプトを視覚化します)。val関数についての情報をありがとう。:)
RodgerB 2008

JavaScriptを使用してテキストを処理できます。キーストロークコードを返す意味は何ですか?
エランガルペリン

重要な点は、キーストロークコードを取得する方が、テキスト領域を区切り文字で分割するよりも効率的であることです(テキストの配列が大きくなる可能性があります)。
RodgerB 2008

2
申し訳ありませんが、それが当てはまるシナリオを視覚化できません...おそらく、元の投稿を編集して例を追加した場合、それは人々が答えるのに役立つでしょう
Eran Galperin

HTMLタグIDの前にある '
textarea

36

よく使用するテキスト関数(divなど)の場合、テキスト領域の場合はvalです。

取得する:

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

セットする:

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

24

コンソールメッセージ、つまり前のコマンドとその出力を含むdivが必要です。そしてその下には、入力しているコマンドを保持するだけのinputまたはtextareaがあります。

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

この方法では、入力ボックスの値をサーバーに送信して処理し、その結果をコンソールメッセージのdivに追加します。


はい、まさに私が考えていたものです。これは、出力から入力を解析する(愚かな試み-ユーザーが「出力」を打ち込んだ場合はどうなる)か、キーストロークイベントから文字列を構築しようとする(愚かな試みを行う)を含まない唯一のクリーンなソリューションです。 -バックスペースなどはどうですか?)
Nick Perkins

3
SOに関する別のXY問題。これは明らかに彼の問題の「X」に対する最良の解決策です。
Reimius 2014

14

通常、それはvalueプロパティです

testArea.value

それとも、あなたが必要としているものに欠けているものはありますか?


私は実際にtextchangedイベントまたはラインに沿った何かが呼び出されることを期待しています(とにかくkeyupイベントでこれをかなり簡単に行うことができました)。キーアップイベントの使用に固執すると思いますが、キーコードをASCII文字に変換する方法を知っていますか?ありがとう。:)
RodgerB 2008

8

次の関数を使用して、イベントのkeyCodeを文字に変換できることがわかりました。

var char = String.fromCharCode(v_code);

そこから文字を文字列に追加し、Enterキーが押されたときに文字列をサーバーに送信します。私の質問がいくぶん不可解に思われ、タイトルがほぼ完全に話題から外れていることを意味している場合は申し訳ありません。それは早朝であり、まだ朝食をとっていません;)。

助けてくれてありがとう。


7

「コンソール」という言葉が混乱を引き起こしていると思います。

古いスタイルの全二重/半二重コンソールをエミュレートする場合は、次のようなものを使用します。

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

押されたキーを持つevent.which バックスペース処理の場合、event.which === 8。



0

textarea値とコード文字変換を読み取ります。

そしてdiv-sのみのコンソールのような素晴らしいQuakeの下:)


0

名前とIDでtextareaデータを取得できます

// 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.