2017-06-30 15 views
1

人が誤ってtype = number入力フィールドのセットに小数点以下2桁を入力しないようにする必要があります。私は役に立たない以下を試みた。javascriptは数字入力の重複小数点を削除します

$(function(){ 
    $('input[type=number]').keyup(function(){ 
     var newval=$(this).val().split('..').join('.'); 
     $(this).val(newval); 
    }); 
}); 


$(function(){ 
    $('input[type=number]').keyup(function(){ 
     var newval=$(this).val().replace('..','.'); 
     $(this).val(newval); 
    }); 
}); 

$(function(){ 
    $('input[type=number]').keyup(function(){ 
     var newval=$(this).val().replace(/\.\./g,'.'); 
     $(this).val(newval); 
    }); 
}); 

これらのすべてが値を空白にするか、まったく何も行わず、重複小数点が残ります。入力皆のため

https://jsfiddle.net/uLayjmkv/

+2

あなたの質問を理解するのに役立つと思われるもののサンプル入出力があります。 – Carcigenicate

+0

私の営業担当者が「1.35」ではなく「1.35」を入力すると、重複小数点を削除する必要があります – b747fp

+0

「1.35」ではなく「11.35」と入力した場合、どのように修正しますか? – James

答えて

0

おかげで、私がやってしまったことは、「テキスト」、)(置き換えを実行した後、「番号」に戻って、それを変更することからkeyup、変更attrの「タイプ」であります。

2

これはおそらく何か?型「テキスト」を使用していない「数」

let last = ''; 
 

 
document.getElementById('me').addEventListener('input', (e) => { 
 
    const match = e.target.value.match(/[-+]?\d*\.?\d*/); 
 
    if (match || e.target.value === '') { 
 
    last = match ? match[0] : ''; 
 
    } 
 

 
    e.target.value = last; 
 
}, false);
<input id="me" type="text" />

はそれ以上のエッジケースがあるかどうか分からないクロム58で私のために[OK]を動作するようです。

関連する問題