2017-05-05 4 views
0

入力を10進数の前に最大2つの整数に制限しようとしています。 (例えば00.0)私はhereである.numericでこの作業をしようとしています。.numericを使用して小数点以下の整数の数を制限する

私の電話はこのようになります。

$(".setOneNumDec").numeric({ 
    negative: false, 
    decimal: ".", 
    scale: 3, 
    decimalPlaces: 1 
}); 

プラグインはまだ小数の前に整数の任意の数を許可されたが現在は小数第1位の制限が働いています。

+0

このプラグインは、あなたが探している制限(最大範囲)をサポートしていないようです。たぶんあなたはそれがあなたに与える価値を取って、それが '> = 100 'であるかどうかを調べることができますか? –

答えて

2

あなたが使用しているプラ​​グインは古くなったと言いましょう。それは2歳です(または何も変更されていませんでした)。最近、現代的なブラウザ(たとえIE> 10)でも入力要素のnumberの型を扱うことができます。だから、あなたが必要としないプラグインをなぜ使うのか。また

var element = document.querySelector('input[type="number"]'); 
 
element.addEventListener("keyup", function(event){ 
 

 
    var currentChar = parseInt(String.fromCharCode(event.keyCode), 10); 
 
    // the String.fromCharCode... is a special trick 
 
    // which is nicely explained here: 
 
    // http://stackoverflow.com/a/25060122/2008111 
 

 
    if(!isNaN(currentChar)) { 
 
     var nextValue = this.value + currentChar; 
 
     
 
     // check if next value is bigger then 100 the reset to 99.9 
 
     if(parseInt(nextValue, 10) > 100) { 
 
      return this.value = 99.9; 
 
     } 
 
     
 
     // decimal check here. if more then 2 decimal places remove the last one 
 
     if((this.value.split('.')[1] || []).length > 1) { 
 
      return this.value = this.value.slice(0, -1); 
 
     } 
 
    } 
 
    return false; 
 
});
<input type="number" min="0.1" max="99.9" step="0.1" />

テストは:入力フィールド内の矢印を用いた場合であっても働いてどのように見栄え。

+0

これは完璧です!ありがとうございました。そして私は図書館を取り除くことができます。 – joerdie

+0

@joerdieよろしくお願いします!喜んで聞いて幸せなコーディング – caramba

+0

@joerdieそれは1つのバグを持っています、ただ今考え出した。あなたはあなたが望むように多くの '0'を打ち込むことができます...しかし、私はそれを修正するのは簡単だとあなたはそれを解決することができます – caramba

関連する問題