html5 oninvalid não funciona depois de consertado o campo de entrada

Eu tenho esse código de entrada no meu formulário:

<input maxlength="255" id="information_name" name="information[name]" oninvalid="check(this)" placeholder="Nombre Completo" required="required" size="30" style="width:528px;height:25px;" tabindex="3" type="text">

Eu mudo a mensagem oninvalid com este código javascritp:

<script>
 function check(input) {
   if (input.value == "") {
     input.setCustomValidity('Debe completar este campo.');
   } else  {
     input.setCustomValidity('Debe corregir este campo.');
   }

 }
</script>

Aqui está o problema, se eu cliquei em enviar e o campo está vazio, o campo faz o erro, então eu preciso preencher o campo, mas depois de preencher o campo, ainda recebo o aviso mesmo que o preenchimento não esteja vazio.

O que estou fazendo errado ???

questionAnswers(4)

yourAnswerToTheQuestion