Heeft iemand al eens in FormBuilder een veld opgenomen voor het BurgerServiceNummer (SOFI-nummer), met validatie?
Zo ja, zou je dat willen delen?
Frank
[OPGELOST] BurgerServiceNummer in contactformulier
Moderator: velden
[OPGELOST] BurgerServiceNummer in contactformulier
Last edited by frankmanl on Tue Oct 18, 2011 3:49 am, edited 1 time in total.
Re: BurgerServiceNummer in contactformulier
----------
Last edited by deactivated010521 on Tue Mar 12, 2013 5:50 pm, edited 1 time in total.
Re: BurgerServiceNummer in contactformulier
Te gek Arnoud, daar ga ik eens even mee aan de slag van 't weekeinde.
Frank
Frank
Re: BurgerServiceNummer in contactformulier
Nou, dat gaat niet lukken.
Ik heb geprobeerd de 11-proef op te nemen in jquery.validate.min.js, zonder gewenst resultaat.
Ben bang dat ik gewoon niet genoeg snap van JavaScript.
Vervolgens geprobeerd het met Form Builder zelf te regelen:
nieuw veld BSN (veld-id 35), numeriek, maar wat doe ik dan met de validatie?
Heb het script geplaatst in Smarty data or logic that is meant to be sent with this field:
Maar wat kies ik vervolgens bij Field Validation:? Niets lijkt het script te activeren...
Of zit ik volledig in een onjuiste richting de te denken?
Frank
Ik heb geprobeerd de 11-proef op te nemen in jquery.validate.min.js, zonder gewenst resultaat.
Ben bang dat ik gewoon niet genoeg snap van JavaScript.
Vervolgens geprobeerd het met Form Builder zelf te regelen:
nieuw veld BSN (veld-id 35), numeriek, maar wat doe ik dan met de validatie?
Heb het script geplaatst in Smarty data or logic that is meant to be sent with this field:
Code: Select all
{literal}
<__script__ language="javascript">
function eleven_test(fbrp__35) {
var sofi_number = fbrp__35.replace(/\D/, "");
var char_count = sofi_number.length;
var sum = 0;
for (i=1; i<10; i++) {
amount = sofi_number.charAt(i-1);
if (i == 9 ) {
sum -= amount*(10-i);
} else {
sum += amount*(10-i);
}
}
if (sum % 11==0 && char_count==9) {
return true
} else {
return false
}
}
</__script>
{/literal}
Of zit ik volledig in een onjuiste richting de te denken?
Frank
Re: BurgerServiceNummer in contactformulier
----------
Last edited by deactivated010521 on Tue Mar 12, 2013 5:50 pm, edited 1 time in total.
Re: BurgerServiceNummer in contactformulier
Hiermee is het helemaal gelukt, Arnoud.
Ik heb er wel nog enkele kleine aanpassingen aan gedaan, omdat het mogelijk moet zijn het veld leeg te laten.
Definitie van veld sofi_number:
• de lengte van het veld ingesteld op 9 (de toegestane lengte van zo'n nummer)
• de validatie op numeric verwijderd (wordt door script gedaan)
• het veld niet verplicht in te vullen (wie zijn sofinummer niet bij de hand heeft moet toch het formulier kunnen versturen)
Form template:
Omdat het veld leeg mag blijven wordt het script alleen uitgevoerd als variabele sofi_number niet leeg is.
Frank
Ik heb er wel nog enkele kleine aanpassingen aan gedaan, omdat het mogelijk moet zijn het veld leeg te laten.
Definitie van veld sofi_number:
• de lengte van het veld ingesteld op 9 (de toegestane lengte van zo'n nummer)
• de validatie op numeric verwijderd (wordt door script gedaan)
• het veld niet verplicht in te vullen (wie zijn sofinummer niet bij de hand heeft moet toch het formulier kunnen versturen)
Form template:
Omdat het veld leeg mag blijven wordt het script alleen uitgevoerd als variabele sofi_number niet leeg is.
Code: Select all
{literal}
<__script__ type="text/javascript">
function validate_form() {
var sofi_number = document.getElementById('sofi_number').value;
if (sofi_number){
sofi_number = sofi_number.replace(/\D/g, "");
var char_count = sofi_number.length;
var sum = 0;
for (i=1; i<10; i++) {
amount = sofi_number.charAt(i-1);
if (i == 9 ) {
sum -= amount*(10-i);
} else {
sum += amount*(10-i);
}
}
if (sum % 11==0 && char_count==9) {
return true
} else {
alert('Vul een correct BSN in of laat veld leeg');
return false
}
}
}
</__script>
{/literal}