7

キー入力とテキストボックスへのコピーアンドペーストの両方で日付を入力しているときに、javascriptまたはjQueryで動的に検出して変更する方法はありますか?

月などの 2 桁の機能的なテキスト ボックスを作成しようとしています。

月は 1 から 12 までの数字にすることができるので、最初の桁を 1 または 0 にする必要があります。

ただし、私がやろうとしているトリックは、テキスト ボックスが最初にフォーカスを得て、ユーザーが数字を入力し始めたときです。その数字が 2 から 9 の場合、最初のスポットを自動的にゼロで埋めてから 9 を入力します。 2番目のスポット。

何かを入力する前は、この日付入力は次のようになります。

__/__/_____

「1」と入力すると

1_/__/_____

「2」と入力すると、取得する必要があります

02/__/_____

「22」と入力すると、取得する必要があります

02/2_/_____

「77」と入力すると、取得する必要があります

07/07/_____

コード付きの回答、または既にこれを行っているツールへのリンク、または以前の投稿へのリンクに非常に興味がありますか?

最終的には、2011 年 7 月 7 日または 2011 年 7 月 7 日または 2011 年 7 月 7 日が常に 2011 年 7 月 7 日になるように、マスクを付けたいと思います。最終的な最終バージョンでは、年をデフォルトで現在の10年に設定しようとしていますが、10年ごとにドロップダウンしています++ --.

4

3 に答える 3

2

ユーザーの入力ではなく、テキストボックスのぼかしにリスナーを接続してみませんか。

「1」と入力した場合のユーザーエクスペリエンスについて考えてみてください。突然、入力中にゼロが追加または削除され始めました。

var dayInput = document.getElementById("day-input");
// usually, I'd just use event-listeners, but feel free to refactor
dayInput.onblur = handleDayOrMonth;

function handleDayOrMonth () {
    var el = (this === window) ? event.srcElement : this,
        number_string = el.value;

    // checking that it's an actual number
    if (!isNaN(parseInt(number_string)) {
        if (number_string.length === 1) { el.value = "0" + number_string; }
    }
}

年の処理は、それが何であれ、先頭に「20」を追加することを除いて、まったく同じです。

お気軽にjQueryを作成してください。

于 2012-07-19T18:14:05.050 に答える
2

あなたが望む機能はjQuery Masked Input プラグインによって提供されると思います

デモ: http://jsfiddle.net/SO_AMK/SEXAj/

また、数字しか使用できないことに注意してください。

于 2012-07-27T02:47:07.147 に答える
0

答えはここにあります... jQuery masked input plugin .

于 2012-07-30T18:48:19.973 に答える