3

2003年から、古いコードを機能させることに取り組んでいます。ATMスタイルの10進テキストボックスを複製しようとしています。このコードは誰かのために働いたと主張していますが、私はそれを実装するのに問題があります。

多分誰かがこれを達成するためのより良い方法を持っていますか?多分jQueryで?

4

2 に答える 2

4

これは私がそれを解決する方法です: http://jsfiddle.net/77bMx/86/

  • テンキー入力と標準の数字キーを処理します
  • バックスペースで動作
  • 何らかの方法で不正な入力を生成した場合 (バックスペースが多すぎるなど)、0.00 に戻ります。

基本的な考え方は、ボックスへの入力をインターセプトし、それが正しいタイプ (数値またはバックスペース) であることを確認してから、それをバッキング ストレージ文字列 ( var input) に追加し、その文字列をフォーマットして正しく表示することです。イベント ハンドラーの最後で使用するため、ユーザーがテキスト ボックスに直接何かを入力することはありません。return false

于 2012-08-01T11:31:27.383 に答える
1

さて、入力を処理するためのコードは、次のように簡単に作成できます。

$("#number").keyup(function(e){
    var number = $("#number").val();
    var newValue = (Math.round(parseFloat(number)*100)/100)/100;
});

競合を起こさずにテキストボックスに戻すのは難しいかもしれませんが、次のようにして「偽造」することができます。

http://jsfiddle.net/AnfCn/1/

免責事項: クイック アンド ダーティー

于 2012-08-01T11:27:36.023 に答える