Ik heb een formulier gemaakt in Acrobat. Dit formulier bevat o.a. het veld BSN (burgerservicenummer). Omdat ik graag wil dat mijn collega's een goed BSN invoeren, heb ik ergens op internet een javascript gezocht wat de 11-proef doet:
Nu is het echter zo dat als je eenmaal in het veld BSN staat en je hebt geen BSN van de klant gekregen, dat je in een loop blijft zitten. Je blijft namelijk de melding krijgen dat er een onjuist BSN is ingevoerd. Je kunt niet dit veld skippen en door met het formulier. Is in het javascript aan te passen dat hij geen melding geeft als het veld leeg is? Er moet alleen een melding komen als er een waarde is ingevuld die niet klopt.
PHP:
function ElfCheck(fieldName, description)
{
var legal = true;
var nrOfChars = 9;
var myField = this.getField(fieldName);
var number = myField.valueAsString;
var size = number.length;
// add 0's if not 9 characters long
if (size != nrOfChars)
{
app.beep(0);
if(description != null)
{
app.alert("U hebt een " + description + " ingevuld dat niet uit 9 cijfers bestaat. Hebt u een " + description + " van minder dan 9 cijfers, vul dan aan het begin nullen in tot een 9-cijferig nummer ontstaat. Bijvoorbeeld: '12345678' wordt '012345678'. Vul het " + description + " opnieuw in.");
}
myField.setFocus();
}
else
{
var number_array = new Array();
for(i=0;i<size;i++)
{
number_array[i] = (number.charAt(i)).valueOf();
}
//Compute the ELF Check
var elfCheck = 0;
for(i=0;i<(size-1);i++)
{
elfCheck += (9-i)*number_array[i];
}
var result = (elfCheck)%11;
var result_string = result.toString();
var resultlength = (result_string).length;
if (resultlength > 1)
{
legal = false;
}
else
{
if (result_string != (number_array[size-1]).toString())
{
legal = false;
}
}
if(!legal)
{
app.beep(0);
if(description != null)
{
app.alert("U hebt een " + description + " ingevuld dat ongeldig is. Vul het " + description + " opnieuw in.");
}
myField.setFocus();
}
}
}