/ /テキストボックスに金額を入力するための検証-jquery、jquery-ui

テキストボックスに金額を入力するための検証 - jquery、jquery-ui

「量」列にテキストボックスがあります。ここでは、この「99999.99」のように、小数の前に5桁、小数の後に2桁のみを入力します。私はjqueryでこれをやりたいです。私は次のコードを使用しています、

editor: { type:"textbox",style:"z-index:10000;position:relative;",init:filterhandler,cls:"com1",},


var filterhandler = function (ui) {
$(".com1").keyup(function(){
var value = $(".com1").val();
if(value.indexOf(".") === -1){
var max=99999;
if( value > max){
$("div.jGrowl").find("div.jGrowl-notification").parent().remove();
$.jGrowl("You can"t  enter more than 99999.99", { sticky: false });
value = value.substring(0,5);
$(".com1").val(value);
value = value.substring(0,3);
}
}else{
var max = 2;
var v=value.split(".");
var fstvalue= v[0];
var scndValue=v[1];
$(".com1").css({ "border-color": "rgb(153, 188, 232)"});
if(scndValue.length > max){
$("div.jGrowl").find("div.jGrowl-notification").parent().remove();
$.jGrowl("You can"t  enter more than 99999.99", { sticky: false });
scndValue = scndValue.substring(0,2);
value=fstvalue+"."+scndValue;
$(".com1").val(value);
}
}
});
};

このコードでは、値を制限する方法を教えてください。

回答:

回答№1は2

Regexを使用して、入力が入力範囲と一致するかどうかをテストします。 フィドル

([1-9]{1,5}) 最初の5文字を​​数字のみに制限し、0で始めることはできません。
(.([0-9]{2})? ユーザーを2つの場所に制限します . また、これは適用する必要がないことを意味する遅延セレクタです。例:123も一致しますが、123.23も一致します。

$("input").blur(function() {

var pat = /([1-9]{1,5})(.([0-9]){2})?/g;

if ( pat.test(this.value) ) {
console.log("You"re Good!");
} else {
console.log("No match!");
}

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />


回答№2の場合は0

代わりに正規表現を使用できます!

function validateAmount(amount){
var re = /^d{1,5}(.d{1,2})?$/;
return re.test(amount);
}

使用法:

if(validateAmount(20.2)) console.log("validated");
else console.log("validation failed");

説明:

d //for digits
{1,5} // min 1 char to max 5 chars
. // to escape char .
d //again digits
{0,2} again min 0 to max 2 chars
? //for optional, as after decimal points are optional, it"s needed to be be wrapped in parentheses.

回答№3の場合は0

最も簡単な方法は、「input.js」ファイルを最初に追加することです。そして、次の2行を使用します。その完璧な動作。

    var inputConfig = {aSep:"", aNeg:"", mDec:2, mNum:5};
$(".com1").autoNumeric(inputConfig);


回答№4の場合は-1

あなたはそのように数学を使うことができますか?

$("form").submit(function(e) {
e.preventDefault();
amount = $(".amount").val();
if(amount > 9999.99) {
alert("you cannot enter more than 9999.99");
} else {
alert("all good here");
}
});

http://jsbin.com/tugimayiro/1/