[Tiago Motta] Validação no lado cliente com form_remote_tag

Para fazer validações de formulário no lado cliente basta informar ao método form_tag ou ao form_for, utilizando o parâmetro :onsubmit, o código javascript que se deseja executar para validá-lo. Veja no exemplo:

  <% form_tag "/entrar", :onsubmit => 'return valida(this)' do %>      <h1>ok</h1>  <% end %>

Contudo para a tag form_remote_tag e form_remote_for não há a possibilidade de utilizar o parâmetro :onsubmit. Isso porque o formulário gerado pelo rails já possui a ação onsubmit definida com o código que fará o acesso remoto. Para colocar então sua validação antes deste código deve-se usar o parâmetro :before como é mostrado no exemplo:

  <% form_remote_tag :url => "/entrar",         :update => 'meu_div',         :before => 'if( !valida(this) ) return false' do %>      <h1>ok</h1>  <% end %>

Repare que é importante que haja o “return false” no caso de não ter sido validado, caso contrário ele executará o restante do código colocado pelo rails no onsubmit.