jQuery获取textarea文本

Rod*_*erB 474 javascript ajax jquery

最近我开始玩jQuery,并且已经关注了几个教程.现在我觉得使用它有点能干(这很简单),我觉得如果我能在我的网页上制作一个"控制台"会很酷(就像你在FPS游戏中一样按下'键' ,等),然后让Ajax本身回到服务器,以便做的事情.

我原本认为最好的方法是在textarea中获取文本,然后拆分它,或者我应该使用keyup事件,将返回的键码转换为ASCII字符,将字符附加到字符串并将字符串发送到服务器(然后清空字符串).

我找不到任何关于从textarea获取文本的信息,我得到的只是密钥信息.另外,如何将返回的键码转换为ASCII字符?

Era*_*rin 698

为什么要将键击转换为文本?添加一个按钮,在单击时将textarea内的文本发送到服务器.你可以在指出之前使用value属性作为海报来获取文本,或者使用jQuery的API:

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

  • 因为textarea会包含更多,只需要所需的文本.(它是控制台,可视化命令提示符).感谢val函数的信息.:) (2认同)
  • 对不起,我没有想象出这样的情况......也许如果您编辑了原始帖子并添加了一个示例,它会帮助人们尝试回答 (2认同)

Tho*_*lle 34

它通常是您使用的文本函数(例如在div等),然后对于文本区域,它是val

得到:

$('#myTextBox').val();
Run Code Online (Sandbox Code Playgroud)

组:

$('#myTextBox').val('new value');
Run Code Online (Sandbox Code Playgroud)


p3d*_*ola 23

你应该有一个只包含控制台消息的div,即以前的命令及其输出.并在下面放置一个输入或textarea只保存您正在键入的命令.

-------------------------------
| consle output ...           |
| more output                 |
| prevous commands and data   |
-------------------------------
> This is an input box.
Run Code Online (Sandbox Code Playgroud)

这样,您只需将输入框的值发送到服务器进行处理,并将结果附加到控制台消息div.

  • 关于SO的另一个XY问题.这显然是他问题的'X'的最佳解决方案. (3认同)

sbl*_*ndy 13

通常,它是值属性

testArea.value
Run Code Online (Sandbox Code Playgroud)

或者你需要什么我缺少的东西?


Rod*_*erB 8

我已经发现我可以使用以下函数将事件的keyCode转换为字符:

var char = String.fromCharCode(v_code);
Run Code Online (Sandbox Code Playgroud)

然后我会将字符附加到字符串,当按下回车键时,将字符串发送到服务器.我很抱歉,如果我的问题看起来有点神秘,标题意味着几乎完全偏离主题,那是一大早,我还没吃早餐;).

谢谢你们的帮助.


小智 7

将"控制台"这个词拼写成混乱.

如果你想模仿一个旧式的全/半双工控制台,你可以使用这样的东西:

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

event.which有按下的键.对于退格处理,event.which === 8.


use*_*030 6

您可以通过名称和 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();
Run Code Online (Sandbox Code Playgroud)