Bu örnekte test desenlerimiz örnek olarak 10.99 ya da direk 10 gibi decimal formatındaki değerleri kontrol etmektedir.
var dec1 = /^[0-9]+((\.[0-9][0-9])|(\.[0-9])|)$/i; // Format: 10.99 var dec2 = /^[0-9]+$/i; // Format: 10 var alans = $(".test"); //Test edilecek inputların class'ıyla ya da id ya da herhangi bir attribute vererek örnek " t " gibi bir degisken atayarak inputlara ( $(input[t='t']) ) şeklindede test edilecek alanları seçebilirsiniz.
function testDecimal() { var dec1 = /^[0-9]+((\.[0-9][0-9])|(\.[0-9])|)$/i; var dec2 = /^[0-9]+$/i; var alans = $(".alanlar"); var Y = 0; //Y değişkeni hatalı değerleri kontrol edicek //$.each C#'taki foreach in aynısıdır. //$.each ile test edilecek alanlar içinde dönüp değerlerini kontrol ediyoruz. $.each(alans, function () { var degeri = $(this).val(); //this anındaki input'un değeri.. //lastchar input'un değerinin son karakterini alıyoruz ve son karakter virgül ise replace ile temizliyoruz. var lastChar = degeri.substr(degeri.length - 1); if (lastChar == ",") { degeri = degeri.replace(',',''); } //test methoduyla üstte belirttiğimiz desenlere uyup uymadığını kontrol ediyoruz. var ok = dec1.test(degeri) || dec2.test(degeri); if (ok) { $(this).removeClass("wrong"); $(this).val(degeri) } else { $(this).addClass("wrong"); //Hata varsa wrong isimli class'ı ekliyorum. bu class ' border:1px solid red; ' css değerini içermektedir. Y++; //Y değerini bir attırıyorum } }); if (Y > 0) // Y 0'dan büyükse bir hata vardır ve geriye 0 döndürüyoruz. return 0; else return 1; }
Return 0 ve ya 1 değer döndürmenin sebebi .Net çalışanlar bir form validation esnasında LinkButton, ImageButton, Button kontrollerinin OnClientClick methotlarına OnClientClick='return testDecimal()' şeklinde çağırarak PostBack öncesi alanları kontrol edebilirsiniz. İyi Kodlar!