带有硬编码短划线的文本框值

时间:2013-05-22 10:54:23

标签: javascript jquery

我在页面中有一个文本框。 <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。请帮忙

3 个答案:

答案 0 :(得分:2)

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

试试这个 -

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

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

答案 1 :(得分:0)

尝试

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

演示:Fiddle

答案 2 :(得分: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();            
        }
    });
});