Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何关注下一步<;输入>;在*ngFor指令内_Javascript_Html_Angular_Typescript - Fatal编程技术网

Javascript 如何关注下一步<;输入>;在*ngFor指令内

Javascript 如何关注下一步<;输入>;在*ngFor指令内,javascript,html,angular,typescript,Javascript,Html,Angular,Typescript,我有一个表单,它根据用户希望输入的托盘数量捕获一些条形码。这反过来会重复一组输入,每个输入捕获一个唯一的条形码 条形码.component.html 默认情况下,扫描仪在扫描有效条形码后自动执行keyup.enter事件 我希望焦点从刚刚扫描的输入转移到下一个空的可用兄弟 TL;DR 如何将焦点设置为下一个尚未填充的可用输入同级?您可以执行以下更改 (keyup.enter)="keytab($event.target)" keytab(e) { let elem

我有一个表单,它根据用户希望输入的托盘数量捕获一些条形码。这反过来会重复一组输入,每个输入捕获一个唯一的条形码

条形码.component.html

默认情况下,扫描仪在扫描有效条形码后自动执行keyup.enter事件

我希望焦点从刚刚扫描的输入转移到下一个空的可用兄弟

TL;DR
如何将焦点设置为下一个尚未填充的可用输入同级?

您可以执行以下更改

(keyup.enter)="keytab($event.target)"


keytab(e) {
    let element = e.parentElement.parentElement.childNodes; // get the parent element
    
    for(let child of element){
       if(child.firstChild.type === "text" && child.firstChild.innerHTML === ""){
           child.firstChild.focus();
            return;
        }
    }

您可以进行以下更改

(keyup.enter)="keytab($event.target)"


keytab(e) {
    let element = e.parentElement.parentElement.childNodes; // get the parent element
    
    for(let child of element){
       if(child.firstChild.type === "text" && child.firstChild.innerHTML === ""){
           child.firstChild.focus();
            return;
        }
    }

我设法用简单的旧Javascript解决了这个问题

*ngFor*
中的我的元素上,我添加了一个数据属性

[attr.id]="x"
基于
*ngFor
的索引值

在我的
keytab
方法中,我执行以下操作

if (event.which === 13) {
    var target = event.target || event.srcElement || event.currentTarget;
    var id = target.attributes.id; // returns target element object
    var val = id.nodeValue; // gets node value of element
            
    if((+val + 1) < this.number) { //prevents focus to 'null' element
        document.getElementById(String(+val + 1)).focus(); //shifts focus to next element
    }
}
if(event.which==13){
var target=event.target | | event.src元素| | event.currentTarget;
var id=target.attributes.id;//返回目标元素对象
var val=id.nodeValue;//获取元素的节点值
if((+val+1)
我用简单的旧Javascript解决了这个问题

*ngFor*
中的我的元素上,我添加了一个数据属性

[attr.id]="x"
基于
*ngFor
的索引值

在我的
keytab
方法中,我执行以下操作

if (event.which === 13) {
    var target = event.target || event.srcElement || event.currentTarget;
    var id = target.attributes.id; // returns target element object
    var val = id.nodeValue; // gets node value of element
            
    if((+val + 1) < this.number) { //prevents focus to 'null' element
        document.getElementById(String(+val + 1)).focus(); //shifts focus to next element
    }
}
if(event.which==13){
var target=event.target | | event.src元素| | event.currentTarget;
var id=target.attributes.id;//返回目标元素对象
var val=id.nodeValue;//获取元素的节点值
if((+val+1)
如何识别扫描已完成?@micronyks扫描仪执行自动输入键事件,如果没有下一个空输入,则填充输入键?如何识别扫描已完成?@micronyks扫描仪执行自动输入键事件,如果没有下一个空输入,则填充inputhow?当然,您必须根据需要修改此代码。我尝试了类似的代码,并得到了这个。当然,你将不得不修改此代码根据要求。我尝试了类似的代码,得到了这个。