在Angular中,如果输入嵌套在HTML的li标记中,并且需要在达到限制时聚焦到下一个输入,可以通过以下步骤实现:
以下是一个示例代码:
在组件的HTML模板中:
<ul>
<li *ngFor="let input of inputs">
<input [(ngModel)]="input.value" (keyup)="onKeyup(input)">
</li>
</ul>
在组件的Typescript文件中:
import { Component, ViewChild, ElementRef } from '@angular/core';
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent {
inputs = [
{ value: '' },
{ value: '' },
{ value: '' }
];
@ViewChild('inputRefs') inputRefs: ElementRef[];
onKeyup(input: any) {
const index = this.inputs.indexOf(input);
if (input.value.length >= 10 && index < this.inputs.length - 1) {
const nextInput = this.inputRefs[index + 1];
nextInput.nativeElement.focus();
}
}
}
请注意,上述示例中的inputRefs是一个ViewChild装饰器获取到的输入框元素的引用数组。在HTML模板中,需要使用一个标识符(例如#inputRefs)来引用这个数组。
这样,当输入框的值达到限制时,焦点将自动聚焦到下一个输入框。
领取专属 10元无门槛券
手把手带您无忧上云