******************************************************************************* DOCUMENTAÇÃO ******************************************************************************* O servidor pode inserir mensagens que derivam de validações que o cliente não pode replicar (por exemplo, para ver se determinado ficheiro existe). A natureza dessa mensagem é assinalada por um "data-vemsg" vazio (mas existente). A validação de grupo ocorre apenas se todos os campos forem válidos. Valores para "t": - 1 (modInstall): valida tudo menos nulos; - 2 (modInstall para campos não-correntes): valida tudo menos nulos; - 3 (onChange:isTrusted = false): valida tudo menos nulos; - 4 (onInput): só valida se estiver com erro; - 5 (onChange): valida tudo; - 6 (onSubmit): valida tudo. ******************************************************************************* NOTAS ******************************************************************************* - N1 (msg.js): Ao colocarmos já o id da caixa do erro, antecipamos o seu impacto real no posicionamento de elementos. Por exemplo, sem isto, poderia causar deslizamento numa página antes de ter a classe e depois, sem ela, voltar a não o causar -- isto faria a caixa ficar desalinhada com o campo. - N2 (cli.js): Altera tipos avançados (date, number, etc) para "text", de forma a que as regras impostas pelo navegador não interfiram com a validação do FormValidator. - N3 (cli.js): A borda do "offsetParent" do rótulo afecta, dependendo do navegador, os valores do "offsetLeft" e "offsetTop" -- no Firefox afecta, no Chrome não. - N4 (cli.js): A formatação de valores é feita apenas nos campos de texto, pois doutra forma entrariam em conflito com o navegador. Já a filtragem pode variar conforme o tipo. Ver também o parâmetro "retype" de go(). - N5 (cli.js): Pelo menos no Firefox, as alterações ao DOM que o FormValidator executa para assinalar o campo que tem o foco, fecha uma lista que tenha sido aberta e activada (ou seja, não tinha o foco antes) com um clique. Contorna-se esse problema, antecipando o foco de campos desse tipo para o momento em o rato é premido. ******************************************************************************* A FAZER ******************************************************************************* - Antecipar a necessidade de módulos adicionais e passá-los a preload(). - A primeira apresentação de uma mensagem de erro deve aparecer progressivamente. - Contornar o facto dos