FSN#40565 berekeningen in flex velden correct beoordelen op input

svn path=/Website/trunk/; revision=33911
This commit is contained in:
2017-05-18 09:36:25 +00:00
parent 2f3ab5ad26
commit 92a4238503

View File

@@ -73,7 +73,6 @@ function checkRequiredGroup(group)
var in_use = false; // Semaphore(Seinvlag) om nested loop van de alerts van twee velden met te lange invoer te vermijden. var in_use = false; // Semaphore(Seinvlag) om nested loop van de alerts van twee velden met te lange invoer te vermijden.
function checkKenmerk(field, show, ktype, klen, kdec, kmin, kmax) function checkKenmerk(field, show, ktype, klen, kdec, kmin, kmax)
// checkKenmerk(this, false,"N", 7, 2, null, null)
{ {
var valid = true; var valid = true;
if (!in_use) if (!in_use)
@@ -107,39 +106,56 @@ function checkKenmerk(field, show, ktype, klen, kdec, kmin, kmax)
} }
else if (ktype == 'N') else if (ktype == 'N')
{ {
if (kdec) var arrValue = [value];
if (value.length > 0 && value.charAt(0) == "=") // check if it is a calculation
{ {
var l1 = klen-kdec; if (value == "=" || value.indexOf("@") > 0) // @ voor evt. string manipulatie hierna
var l2 = kdec; valid = false;
// Als een punt <20>n een komma in een getal behouden we alleen de laatste else
if (value.lastIndexOf(".") > value.lastIndexOf(",")) {
{ arrValue = value.substring(1).split(/[+\-/*%]/g);
value = value.replace(/\,/ig, ""); if ($.inArray("", arrValue) != -1)
field.value = value; valid = false;
} }
if (value.lastIndexOf(",") > value.lastIndexOf(".")) if (!valid)
{ arrValue = [];
value = value.replace(/\./ig, "");
field.value = value;
}
var s = '^\\-?(\\d{1,'+l1+'}[.,]?|\\d{0,'+l1+'}[.,]\\d{1,'+l2+'})$';
valid = value.match(new RegExp(s)) && valid;
if (valid) { var t = parseFloat(value.replace(',','.'));}
} }
else for (var i = 0; i < arrValue.length; i++)
{ {
if (klen == 1 && kmin == 0 && kmax == 1) if (kdec)
{ {
// Checkbox; waarde in checked is altijd true of false, dus altijd valid. var l1 = klen-kdec;
valid = true; var l2 = kdec;
t = (field.checked?1:0); // Als een punt <20>n een komma in een getal behouden we alleen de laatste
} if (arrValue[i].lastIndexOf(".") > arrValue[i].lastIndexOf(","))
else {
{ value.replace(arrValue[i], arrValue[i].replace(/\,/ig, ""));
var s = '^\\-?\\d{1,'+klen+'}[.,]?$'; field.value = value;
valid = value.match(new RegExp(s)) && valid; }
if (valid) { var t = parseInt(value);} if (arrValue[i].lastIndexOf(",") > arrValue[i].lastIndexOf("."))
} {
value.replace(arrValue[i], arrValue[i].replace(/\./ig, ""));
field.value = value;
}
var s = '^\\-?(\\d{1,'+l1+'}[.,]?|\\d{0,'+l1+'}[.,]\\d{1,'+l2+'})$';
valid = arrValue[i].match(new RegExp(s)) && valid;
if (valid) { var t = parseFloat(arrValue[i].replace(',','.'));}
}
else
{
if (klen == 1 && kmin == 0 && kmax == 1)
{
// Checkbox; waarde in checked is altijd true of false, dus altijd valid.
valid = true;
t = (field.checked?1:0);
}
else
{
var s = '^\\-?\\d{1,'+klen+'}[.,]?$';
valid = arrValue[i].match(new RegExp(s)) && valid;
if (valid) { var t = parseInt(arrValue[i]);}
}
}
} }
if (valid) if (valid)
{ {