替换输入形式的字符,但保留光标位置

时间:2012-09-07 16:29:38

标签: jquery input

我需要创建一个日期条目表单,例如:

<input type="text" id="field" maxlength="10" value="__/__/____"/>

当用户输入日期值时,它应该用输入的值替换每个底线:

var firstValue= $("#field").val();

$("#field").keypress(function (e) {
  var pattern = /^\d*(\d*)?$/;
  var digit= String.fromCharCode(e.keyCode);
  if (digit.match(pattern)) {
    $("#field").val($("#field").val().replace("_", digit))
  }
  else 
    event.target.value = firstValue;
});

一切正常,但光标在输入过程中始终固定在输入窗体的末尾。有人知道为什么会发生这种情况吗?你可以帮助我让光标跟随输入发生吗?

1 个答案:

答案 0 :(得分:2)

无需重新发明轮子。改为使用jQuery Masked Input Plugin

  

它允许用户更容易地输入固定宽度输入,您希望他们以特定格式(日期,电话号码等)输入数据。它已经在Internet Explorer,Firefox,Safari和Chrome上进行了测试。