[英]Is there a way to get text input in Javascript/Html without a text box?
我正在嘗試將自定義終端作為具有自定義命令的網站,但我正在努力在不使用文本框的情況下獲取文本輸入。 我試過這個:
<input type='text' id='textInput'>
但它會創建一個文本框。 我也嘗試使用這樣的事件監聽器:
document.addEventListener('keyup', (event)=>{
if(event.keyCode == 65 ) {
msg += 'a';
}
});
但它不起作用,因為它給出了一個錯誤: ReferenceError: document is not defined
即使這樣做了,對每個鍵都這樣做會很慢。
如果您想輸入數據但不想顯示文本框,那么我建議將文本框上的 CSS 設置為opacity: 0;
- 例子:
<input style="opacity: 0;" id="textInput" />
<script>
document.getElementById('textInput').focus(); // focus on the element
document.getElementById('textInput').addEventListener('keyup', (event) => {
if(event.keyCode == 65 ) {
msg += 'a';
}
});
</script>
編輯:更新了在 CSS 中使用opacity
而不是display
的答案
let txt = document.getElementById('textInput')
txt.addEventListener('keyup', (event) => {
if(event.keyCode == 65 ) {
msg += 'a';
}
});
如果您不喜歡使用該框輸入文本的感覺/外觀,您可以隨時使用 CSS 自行編輯
你可以這樣做:
<style>
#bg{
background-color: black;
padding: 10px;
}
#textInput{
color: green; #Change to a color you like
border: None;
outline: None;
line-height: 25px;
font-family: monospace; #You can also change
background-color: transparent;
width: 100%;
</style>
<div id='bg'>
<input type='text' id='textInput' >
</div>
您不想要文本框的輪廓嗎? 如果是這樣,請嘗試將其值設置為 0px:
<input type="text" style="border: 0px none;" />
還可以嘗試直接從提示框中獲取輸入:
<button onclick="promptValue()">Try it</button>
<p id="enteredValue"></p>
<script>
function promptValue() {
var textValue = prompt("Please enter a value");
document.getElementById("enteredValue").innerHTML = textValue;
}
</script>
一些可能有幫助的語法修復:
window
document
addEventListener
的文檔。 如果您要求對某個特定項目發生某些事情,則可能應該使用document
。 (例如document.querySelector('#searchbox')
。)keydown
可能比keyup
更有效。===
) 而不是經典相等 ( ==
)。keyCode
已棄用。 改為使用key
。 它也將更容易編碼。 (注意:如果您需要使用大寫字母 A,請考慮使用event.key === 'A' && event.shiftKey
。)window.addEventListener('keydown', (event) => {
if(event.key === 'A' ) {
msg += 'a';
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.