【问题标题】:Javascript/HTML Onscreen keyboard working with input tagJavascript/HTML 屏幕键盘使用输入标签
【发布时间】:2018-05-25 03:03:06
【问题描述】:

我正在尝试配置一个屏幕键盘,用户可以使用该键盘在输入元素中输入内容,并且当输入元素内的字符串长度超过 1 时执行特定功能。

到目前为止,我得到了以下内容:

<form>
    <input id="search" type="text" onchange="livesearch(this.value)">
</form>

哪个是输入元素本身,哪个-onchange它执行以下函数:

function livesearch(input){
    if(input.length > 1){
        alert(input);
    }
}

但是,要从屏幕键盘将字符输入到 input 元素中,我使用以下方法:

document.getElementById('search').value += 'Q' 

在搜索框的长度超过 1 并且用户单击框周围的空白区域后运行 livesearch 功能,但是通过屏幕键盘输入文本时它不起作用。我还想解决用户单击元素外的空白以执行该功能的需要。

任何帮助将不胜感激,如有任何问题,请告诉我。

【问题讨论】:

  • 用JavaScript修改值不会触发事件,需要手动触发。

标签: javascript html


【解决方案1】:

在输入失去焦点之前,change 事件不会触发。要实现您的要求,您可以执行以下操作(使用 jQuery):

$('input').on('change keyup paste', function() {
  console.log("Add your logic here...")
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />

这将在输入更改、用户释放键(即类型)或将某些内容粘贴到输入字段时触发您的代码。

【讨论】:

  • 谢谢你,但不幸的是这是为了大学评估,我被禁止使用 jQuery(不要问为什么)但我已经设法让它在没有它的情况下工作 - 但谢谢你非常感谢您的帮助。
  • 很高兴听到你让它工作了? 现在我很好奇 - 你为什么不能使用 jQuery?是不是让事情变得太容易了?
  • 老实说,我不能告诉你,这是一个严格的纯 JavaScript 模块 - 但正如我从谷歌搜索遇到的每个问题中了解到的那样,使用 jQuery 似乎是一种更容易实现的方法他们都是。我想你会建议结合 JavaScript 来学习它?
  • 我确实会。如今,几乎无论你走到哪里,都会遇到某种程度的 jQuery。即使您正在使用其他“高抽象”框架,例如 Ember 或 React。
猜你喜欢
  • 2014-09-27
  • 1970-01-01
  • 2014-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多