2

我在页面中有一个文本框。<input type="text" id="cell">

我在jquery下面使用过......

i = 0;
$(document).ready(function () {
    $("#cell").keypress(function () {
        i += 1;
        if (i == 4) {
            var cellValue = $("#cell").val() + "-";
            $("#cell").val(cellValue);
        }
    });
});

每当用户键入12345678(或任何数字)时,它都会自动显示123-45678. 但问题是当用户使用退格或删除然后开始输入12345678时它不显示123-45678。请帮忙

4

3 回答 3

2

i应该是值的长度,而不是您按下键的次数

尝试这个 -

$("#cell").keypress(function () {
    i = $(this).val().length;
    if (i == 3) {
        var cellValue = $("#cell").val() + "-";
        $("#cell").val(cellValue);
    }
});

演示--> http://jsfiddle.net/KZmc9/2/

于 2013-05-22T10:57:29.150 回答
0

尝试

$(document).ready(function(){
    $("#cell").keypress(function(){
        if (this.value.length == 3) {
            $("#cell").val(this.value + "-");
        }
    });
});

演示:小提琴

于 2013-05-22T11:04:07.387 回答
0

我会将输入分成两部分,否则用户如果想删除第三个数字就必须删除破折号。

http://jsfiddle.net/TATnK/

$(document).ready(function() {
    $('#cell_1').on('input', function(e) {
        if($(this).val().length == 3) {
            $('#cell_2').focus();
        }
    });

    $('#cell_2').keyup(function(e) {
        if(e.which == 8 && $(this).val().length == 0) {
            $('#cell_1').focus();            
        }
    });
});
于 2013-05-22T11:09:43.677 回答