【问题标题】:How do I send Chars to a text Input using Javascript如何使用 Javascript 将字符发送到文本输入
【发布时间】:2019-08-27 16:56:47
【问题描述】:

在我的项目中:CSSHTML Keyboard 我已经根据我的旧笔记本电脑键盘设置了一个键盘,这是我作为学校家庭作业制作的一个小项目。问题是,我不确定如何将特定字符添加到键盘,例如:假设我单击 Shift 然后单击 A/a,我想要它在输入中放置“A”。如果有人可以为此提供一些信息,我将不胜感激。另外对于以后的通知,我并没有试图让 Every 键像它应该的那样工作,只有基本键(字母、数字、大写、设置符号、大写锁定、Shift、空格和退格键)

我做了一个计算器:Simple Calculator 我尝试使用类似的方法将符号/字符发送到输入,但似乎效果不佳。

我尝试的方法是使用输入:

<input id="butn" class="output" type="textfield" name="ans" value="!The 
Text input is Currently Not Available!"></input>

然后使用少量 Javascript 将数学方程式从按钮发送到表单,然后发送到输入,然后使用求值 Javascript sn-p 求解它们

这里是当前代码的链接:CSSHTML Keyboard Finished

顺便说一句,如果键盘采用“胶带和胶水”样式组合在一起,我深表歉意,我对完善 CSS 大小和对齐仍然很陌生,所以现在我手动编写所有内容,并设置边距和大小。

在测试了我使用的上述计算器方法一段时间后,我设法让它在某个时候工作,但它未定义,所以在某种程度上我暂时放弃了这个项目,无论哪种方式, 我对我的成品很满意,即使我不能用它来输入字符。

【问题讨论】:

  • 两个项目之间的代码是不是相差如此之大,以至于你无法比较它们来看看哪里出了问题?
  • 对了,我曾经做过一个完全不用JavaScript的计算器。纯 CSS。但我不确定这是不是这里的主题。
  • @MrLister 很有趣,我猜这与通过可见性或显示隐藏或显示交换数字有关?还是它实际上使用某种计数器/数学评估器..

标签: javascript html css keyboard


【解决方案1】:

你可以添加这个简单的JS来获取keydown事件,获取按下的键的值并打印在输入中。

然后你应该配置你在键入时不想写的键(例如特殊操作)

我已经为您提供了退格键和一些示例键。

var output = document.querySelector('.output');

addEventListener('keydown', function(e) {
    e.preventDefault();     

    // Backspace 
    if ( e.key === 'Backspace' ){
        output.value = output.value.substr( 0, ( output.value.length -1 ) );    

    // The values you dont want to write literally
    } else if( e.key === 'Shift'     || 
               e.key === 'Control'   ||
               e.key === 'Alt'       ||
               e.key === 'AltGraph'   ) {

        output.value += '';

    }   else {
        // The keydown values
        output.value += e.key;
    }   
});

补充

关于如何通过按钮发送值的问题:

首先你必须设置“一些东西”以便用 js 选择它们(例如一个类), 你应该设置一个值属性你以后得到它。

<button type="button" class="letter keys" value="1" >!<br>1</button>

然后选择所有带有循环的按钮并在单击它们时添加一个事件。

最后只需获取元素的 attributes.value 并用它做你想做的事。

这是一个例子:

var buttons = document.querySelectorAll('.letter');

for( let button of buttons ){
    button.addEventListener('click',function(e){
        console.log(button.attributes.value);       
    })
}

这对你有用,但我建议你阅读更多关于 JS 基础知识的内容,以便在此之前管理你想做的所有事情,因为这只是开始。

希望对你有帮助。

【讨论】:

  • 我对 Javascript 还是比较陌生,我如何引用除特定键之外的所有键,例如所有字母,但忽略 Alt、Ctrl、F#s、Esc、prntscr、Shift、输入、页面控件和获胜键
  • 我相信我确实设法将退格键连接到您包含的示例,但由于某种原因我无法连接字母,
  • 哇,现在我相信我真的把它弄坏了,我点击键盘上的退格键,它什么也没做,但是当我在现实生活中的键盘上按退格键时,它会在一遍又一遍地输入,细节在项目中。
  • @TaylorSpark 您的错误是因为 JS 区分大小写并且您的“退格”需要像这样的“退格”: if ( e.key === 'Backspace' ){ 在这里你告诉 js当你按下'Backspace'时的输出是前一个输出减去最后一个字符: output.value = output.value.substr( 0, ( output.value.length -1 ) )
  • @TaylorSpark 只需键入即可知道键,键盘会返回字面名称,然后您就可以使用它了。我让您了解更多有关活动的信息,您可以阅读:developer.mozilla.org/en-US/docs/Web/Events/keydown,如果您有更多疑问,我们在这里。
猜你喜欢
  • 2011-10-27
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 2015-08-31
  • 2021-06-11
相关资源
最近更新 更多