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', 'Compila il campo qui sopra.', function(v) { return !Validation.get('IsEmpty').test(v); }], ['validate-one-required', 'Seleziona una delle opzioni qui sopra.', function (v,elm) { var p = elm.parentNode; var options = p.getElementsByTagName('input'); return $A(options).any(function(elm) { return $F(elm); }); }], ['validate-selection', 'Fa una selezione.', function(v,elm){ return elm.options ? elm.selectedIndex > 0 : !Validation.get('IsEmpty').test(v); }], ['validate-digits', 'Inserisci solo cifre in questo campo.', function(v) { return Validation.get('IsEmpty').test(v) || !/[^\d]/.test(v); }], ['validate-alpha', 'Inserisci solo lettere in questo campo.', function (v) { return Validation.get('IsEmpty').test(v) || /^[A-ZÀ-Ža-zà-ž\'-,\s]+$/.test(v) }], ['validate-email', 'Un email deve essere del tipo mail@dominio.com.', function (v) { return Validation.get('IsEmpty').test(v) || /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v) }], ['validate-url', 'Inserisci una URL valida.', 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', 'Inserisci la tua città (e/o il CAP).', { notOneOf: ['Nessuna città trovata'], minLength: 1 }], ['validate-password', 'La tua password deve essere composta da 6 a 10 caratteri.', { minLength: 6, maxLength: 10 }], ['validate-password-confirm', 'Questo secondo inserimento non corrisponde alla prima password.', { equalToField: 'password' }] ]);