2016-05-25 8 views
0

テキストボックスを使用して、数字のみをカンマで区切ります。空白以外の文字は使用できません。 0-9とカンマのみです。入力テキストボックスに重複するカンマが入力されないようにします。

私の目的は以下の機能ですが、重複したカンマが入力されないようにしたいと考えています。

修正あり 22,444,2,444

などが正しくありません。

$(document).ready(function(){ 
$("#customPrices").keypress(function (e) { 


if (e.which != 8 && e.which != 0 && String.fromCharCode(e.which) != ',' && (e.which < 48 || e.which > 57)) 
{ 

//display error message 
if($("#errmsg").is(':hidden')) 
{ 
$("#errmsg").fadeIn(); 
} 
return false; 

} 

}); 
}); 

私は:ここでは22、444,2,444 OR 22、、444、、2、、444

は、私は数字にフィールドを制限するために使用して、とだけコンマを許可していたコードです次のリンクで動作することができるかもしれ何かを見つけた」VEの: Javascript Help - prevent duplicate characters in textbox

charCodeは45カンマでハイフンを防ぐために、が必要である例では、charCodeは44 ....

しかし、私です私の現在のコードに実装する方法がわからない...

本当に大歓迎です、ありがとうございます!

答えて

1

あなたの立場では、キープレスの検証を試みませんが、は、ユーザーがテキストボックスの内容を変更したときにそれを検証します

function validate() { 
 
    var input = document.getElementById('inputField').value; 
 

 
    if(input.match(/,{2,}/g)) { 
 
    // the user entered a duplicate comma 
 
    alert('No duplicate commas allowed!'); 
 
    } 
 
}
<input oninput='validate()' id='inputField' />


あなたはまた、0〜9の数字以外の文字やカンマため チェックに入力した正規表現を拡張することができ

正規表現を使用して達成すること
/(,{2,}|[^,0-9])/g 

これも報告します。 22,44,d,17が無効です。

+0

私はこれを最初に試みましたが、重複するカンマを検出してアラートを投げていましたが、とにかくカンマを入力することができました。私はサラートの答えを求めて解決しましたが、あなたの返事にとても感謝しています!あなたのものを使用してカンマが入力されないようにする方法があれば、私は本当に知りたいです。 – StuyvesantBlue

+0

前回の回答はすべてのブラウザで一致しなかったので、私はあなたの答えを最終的に使用しなければなりませんでした。 – StuyvesantBlue

1
add the below condition: 
1) take the existing value 
2) check the last char is (,) and current char also (,) and validate 
var customPrices = $("#customPrices").val(); 

String.fromCharCode(e.which) == ',' && String.fromCharCode(e.which) == 
customPrices.charAt(customPrices.length-1) 

or 
String.fromCharCode(e.which) == ',' && customPrices.charAt(customPrices.length-1) == ',' 
+0

ありがとう、ありがとう、私は2番目を使用し、それは美しく働いた! – StuyvesantBlue

関連する問題