- $(function(){
- $.each($('form[validate=true]'), function(i, form){
- $(form).submit(validate);
- });
- $.each($('input[formaction]'), function(i, input){
- $(input).click(function(){
- var form = $(input).parents('form')
- $(form).attr('action', $(input).attr('formaction'))
- });
- });
- });
-
- function validate(e){
- var form = $(e.target);
-
- if(form.data('validated') == true){
- return true;
- }
-
- $.post(form.attr('action') + '/validate', $(e.target).serialize(), function(data){
- // clear all error messages
- $('.error').text('');
-
- if($.isEmptyObject(data)){
- form.data('validated', true);
- form.submit();
- } else {
- form.data('validated', false);
- displayErrors(data);
- }
- }, 'json');
- return false;
- }
-
- function displayErrors(data){
- $.each(data, function(key, value){
- $('#error-' + key.split('.').join('_')).text(value);
- });
- }