function formCallback(result, form) { window.status = 'validation callback for form ' + form.id + ': result = ' + result; } var valid = new Validation('frm_validation', {immediate : true, onFormValidate : formCallback}); Validation.addAllThese([ ['required', 'Veuillez remplir le champ ci-dessus.', function(v) { return !Validation.get('IsEmpty').test(v); }], ['validate-one-required', 'Veuillez sélectionner une des options ci-dessus.', function (v,elm) { var p = elm.parentNode; var options = p.getElementsByTagName('input'); return $A(options).any(function(elm) { return $F(elm); }); }], ['validate-selection', 'Veuillez effectuer une sélection.', function(v,elm){ return elm.options ? elm.selectedIndex > 0 : !Validation.get('IsEmpty').test(v); }], ['validate-digits', 'Ce champ ne peut comporter que des chiffres.', function(v) { return Validation.get('IsEmpty').test(v) || !/[^\d]/.test(v); }], ['validate-alpha', 'Ce champ ne peut comporter que des lettres.', function (v) { return Validation.get('IsEmpty').test(v) || /^[A-ZÀ-Ža-zà-ž\'-,\s]+$/.test(v) }], ['validate-email', 'Une adresse e-mail doit avoir la forme mail@domaine.com.', function (v) { return Validation.get('IsEmpty').test(v) || /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v) }], ['validate-url', 'Veuillez saisir une URL valide.', function (v) { return Validation.get('IsEmpty').test(v) || /^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(v) }], ['city', 'Veuillez indiquer votre ville (et/ou votre code postal).', { notOneOf: ['Aucune ville trouvée'], minLength: 1 }], ['validate-password', 'Votre mot de passe doit comporter entre 6 et 10 caractères.', { minLength: 6, maxLength: 10 }], ['validate-password-confirm', 'La confirmation ne correspond pas au mot de passe saisi.', { equalToField: 'password' }] ]);