2

次のような日付入力フォームを作成する必要があります。

<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;
});

そして、入力中は常にカーソルが入力フォームの最後に固定されたままになることを除いて、すべてが正常に機能します。誰かがなぜこれが起こっているのか知っていますか?それが起こったときにカーソルを入力に追従させるのを手伝ってもらえますか?

4

1 に答える 1

1

車輪を再発明する必要はありません。代わりにjQuery Masked Input Pluginを使用します。

これにより、ユーザーは特定の形式 (日付、電話番号など) でデータを入力したい場合に固定幅入力をより簡単に入力できるようになります。Internet Explorer、Firefox、Safari、および Chrome でテスト済みです。

于 2012-09-07T16:33:11.793 に答える