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.
function checkKenmerk(field, show, ktype, klen, kdec, kmin, kmax)
// checkKenmerk(this, false,"N", 7, 2, null, null)
{
var valid = true;
if (!in_use)
@@ -107,39 +106,56 @@ function checkKenmerk(field, show, ktype, klen, kdec, kmin, kmax)
}
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;
var l2 = kdec;
// Als een punt <20>n een komma in een getal behouden we alleen de laatste
if (value.lastIndexOf(".") > value.lastIndexOf(","))
{
value = value.replace(/\,/ig, "");
field.value = value;
}
if (value.lastIndexOf(",") > value.lastIndexOf("."))
{
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(',','.'));}
if (value == "=" || value.indexOf("@") > 0) // @ voor evt. string manipulatie hierna
valid = false;
else
{
arrValue = value.substring(1).split(/[+\-/*%]/g);
if ($.inArray("", arrValue) != -1)
valid = false;
}
if (!valid)
arrValue = [];
}
else
for (var i = 0; i < arrValue.length; i++)
{
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 = value.match(new RegExp(s)) && valid;
if (valid) { var t = parseInt(value);}
}
if (kdec)
{
var l1 = klen-kdec;
var l2 = kdec;
// Als een punt <20>n een komma in een getal behouden we alleen de laatste
if (arrValue[i].lastIndexOf(".") > arrValue[i].lastIndexOf(","))
{
value.replace(arrValue[i], arrValue[i].replace(/\,/ig, ""));
field.value = 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)
{