我有一个要求我有一个输入字段maxLength 4。在这4个字符中,前2个字符是“FR”。剩下的2个字符将由用户插入。因此,在页面加载期间,我调用了一个Jquery函数并设置了值“FR”,如下所示

  $('.testData').val("FR");

**现在,当用户编辑剩下的两个字符时,他将不能编辑文本“FR”,也不能删除文本“FR”
通过设置
<input type="text" readonly>

它将使整个输入字段不可编辑,我不希望这样,我只想对前两个字符的编辑设置限制。
有人能对此给出解决办法吗???

最佳答案

一个老套的解决方案,但有点用JS来实现。

<input id="myId" type="text" value="AZ"></input>

$("#myId").keydown(function(event){
    console.log(this.selectionStart);
    console.log(event);
    if(event.keyCode == 8){
        this.selectionStart--;
    }
    if(this.selectionStart < 2){
        this.selectionStart = 2;
        console.log(this.selectionStart);
        event.preventDefault();
    }
});

$("#myId").keyup(function(event){
    console.log(this.selectionStart);
    if(this.selectionStart < 2){
        this.selectionStart = 2;
        console.log(this.selectionStart);
        event.preventDefault();
    }
});

小提琴!

10-04 11:27