选择焦点输入的最后三位数

时间:2017-07-25 20:52:41

标签: angular ionic2

当字段获得焦点时,是否可以自动选择输入字段的最后三个字符。

例如,输入字段的编号为" 123456"。当场地获得焦点时,我想要" 456"选择,以便我可以键入" 789"然后输入将具有值" 123789"。

我使用离子3。

2 个答案:

答案 0 :(得分:0)

Angular 2 +



getLastDigits(value: string): number {
  let digits: string;
  let cutPoint: number;
  if (value.length < 3) return value;
  cutPoint = value.length - 3;
  digits = value.substring(cutPoint);
  return +digits;
}
&#13;
&#13;
&#13;

这应该可以解决问题。 this.getLastDigits(value.toString())在传递值时将数字转换为字符串。

答案 1 :(得分:0)

此解决方案使用ElementRef附带的<ion-item> <ion-input type="text" #testInput (focus)="onFocus()"> </ion-input> </ion-item> ,因为它容易受到XSS攻击。并将被用作最后的手段。

HTML:

import { Component, ViewChild, ElementRef } from '@angular/core';
...  
export class TestPage{
    @ViewChild('testInput', { read: ElementRef }) input:ElementRef;
    private inputRef;

    constructor(){}

    ionViewDidLoad(){
        this.inputRef = this.input.nativeElement.querySelector('input');
    }

    onFocus(){
        let length = this.inputRef.value.length;

        if(length > 3){
            this.inputRef.setSelectionRange(length - 3, length)
        }
        else{
            this.inputRef.select();
        }
    }
    ...
}

TS:

The patient has been diagnosed with DIA1