O problema estava nesse trecho (str.value.length != 8). Substitui o 8 por 10 e agora tá funcionando. Provavelmente ele estava contando a barra tbm.
Estava assim:
if (str.value.length == 0) { return true; } if (str.value.length != 8) { return false; }Ficou assim:
if (str.value.length == 0) { return true; } if (str.value.length != 10) { return false; }Se digito qualquer data que não esteja no formato dd/mm/aaaa e clico em salvar ele não faz nada, nem aparece mensagem de erro, mas se digito no formato correto ele grava.
Deixo aqui os meus sinceros agradecimentos, em especial ao Paulo por não medir esforços para me ajuda.
Abraços