最近我开始玩jQuery,并且已经关注了几个教程。现在我觉得使用它有点干练(这很简单),我觉得如果我能在我的网页上制作一个“控制台”会很酷(就像你在{{3中那样按'键)游戏等),然后将Ajax本身重新安装到服务器上以便完成任务。
我原本以为最好的方法是在textarea中获取文本,然后拆分它,或者我应该使用keyup事件,将返回的键码转换为ASCII字符,将字符附加到字符串并发送服务器的字符串(然后清空字符串)。
我找不到有关从textarea获取文本的任何信息,我得到的只是密钥信息。另外,如何将返回的键码转换为ASCII字符?
答案 0 :(得分:674)
为什么要将击键转换为文字?添加一个按钮,在单击时将textarea内的文本发送到服务器。您可以使用value属性作为之前指出的海报或使用jQuery的API获取文本:
$('input#mybutton').click(function() {
var text = $('textarea#mytextarea').val();
//send to server and process response
});
答案 1 :(得分:33)
通常是您使用的文本函数(例如在div等中),然后对于文本区域,它是val
得到:
$('#myTextBox').val();
组:
$('#myTextBox').val('new value');
答案 2 :(得分:23)
你应该有一个只包含控制台消息的div,即以前的命令及其输出。并在下面放置一个输入或textarea,只保存您正在键入的命令。
-------------------------------
| consle output ... |
| more output |
| prevous commands and data |
-------------------------------
> This is an input box.
这样您只需将输入框的值发送到服务器进行处理,然后将结果附加到控制台消息div。
答案 3 :(得分:13)
通常,它是值属性
testArea.value
或者在你需要的东西中是否有我缺少的东西?
答案 4 :(得分:8)
我已经发现我可以使用以下函数将事件的keyCode转换为字符:
var char = String.fromCharCode(v_code);
然后我会将该字符附加到字符串中,当按下回车键时,将字符串发送到服务器。我很抱歉,如果我的问题看起来有点神秘,标题意味着几乎完全偏离主题,那是早上我还没吃过早餐;)。
感谢所有帮助人员。
答案 5 :(得分:7)
将“控制台”这个词拼写成混乱。
如果您想模仿旧式全/半双工控制台,您可以使用以下内容:
$('console').keyup(function(event){
$.get("url", { keyCode: event.which }, ... );
return true;
});
event.which有按下的键。对于退格处理,event.which === 8.
答案 6 :(得分:0)
最好的方法: $(' #myTextBox')。val('新值')。trim();
答案 7 :(得分:0)
读取textarea值和代码字符转换:
function keys(e) {
msg.innerHTML = `last key: ${String.fromCharCode(e.keyCode)}`
if(e.key == 'Enter') {
console.log('send: ', mycon.value);
mycon.value='';
e.preventDefault();
}
}
Push enter to 'send'<br>
<textarea id='mycon' onkeydown="keys(event)"></textarea>
<div id="msg"></div>
并且仅在div-s上不错的 Quake like 控制台下面:)
document.addEventListener('keyup', keys);
let conShow = false
function keys(e) {
if (e.code == 'Backquote') {
conShow = !conShow;
mycon.classList.toggle("showcon");
} else {
if (conShow) {
if (e.code == "Enter") {
conTextOld.innerHTML+= '<br>' + conText.innerHTML;
let command=conText.innerHTML.replace(/ /g,' ');
conText.innerHTML='';
console.log('Send to server:', command);
}
else if (e.code == "Backspace") {
conText.innerHTML = conText.innerText.slice(0, -1);
} else if (e.code == "Space") {
conText.innerHTML = conText.innerText + ' '
} else {
conText.innerHTML = conText.innerText + e.key;
}
}
}
}
body {
margin: 0
}
.con {
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-start;
width: 100%;
height: 90px;
background: rgba(255, 0, 0, 0.4);
position: fixed;
top: -90px;
transition: top 0.5s ease-out 0.2s;
font-family: monospace;
}
.showcon {
top: 0px;
}
.conTextOld {
color: white;
}
.line {
display: flex;
flex-direction: row;
}
.conText{ color: yellow; }
.carret {
height: 20px;
width: 10px;
background: red;
margin-left: 1px;
}
.start { color: red; margin-right: 2px}
Click here and Press tilde ` (and Enter for "send")
<div id="mycon" class="con">
<div id='conTextOld' class='conTextOld'>Hello!</div>
<div class="line">
<div class='start'> > </div>
<div id='conText' class="conText"></div>
<div class='carret'></div>
</div>
</div>
答案 8 :(得分:0)
您可以通过名称和ID获取文本区域数据
from pyspark.context import SparkContext
from pyspark.sql.session import SparkSession
import subprocess
sc = SparkContext()
spark = SparkSession(sc)
bucket = spark._jsc.hadoopConfiguration().get('fs.gs.system.bucket')
project = spark._jsc.hadoopConfiguration().get('fs.gs.project.id')
input_directory = 'gs://{}/hadoop/tmp/bigquery/pyspark_input'.format(bucket)
conf = {
'mapred.bq.project.id': project,
'mapred.bq.gcs.bucket': bucket,
'mapred.bq.temp.gcs.path': input_directory,
'mapred.bq.input.project.id': 'dataset_new',
'mapred.bq.input.dataset.id': 'retail',
'mapred.bq.input.table.id': 'market',
}