django-ajax-validation icon indicating copy to clipboard operation
django-ajax-validation copied to clipboard

Improving django-uni-form ajax validation

Open maraujop opened this issue 13 years ago • 1 comments

  • Adding non_field_errors
  • Small bug fix, that broke validation when having a field named length

maraujop avatar Mar 31 '11 19:03 maraujop

First of all, thanks to Alex for a great project--I've been using django-ajax-validation for a long time with great success. Secondly, thanks to Miguel for his fork of it improving compatibility with django-uni-form; when I started using Uni-Form, some of my AJAX validation broke, but this fixed it. I've finally tried out Twitter Bootstrap and django-crispy-forms, and they're awesome. However, they don't immediately work with django-ajax-validation, so I modeled a bootstrap_callback function after both of your uniform_callback functions. If anyone else still uses django-ajax-validation, they may find it useful.

function bootstrap_callback(data, form) {
    $(form).find(".alert-error").remove();
    var field_divs = $(form).find(".control-group").filter(".error");
    field_divs.removeClass("error");
    field_divs.find("[id^=error_1_]").remove();
    $.each(data.errors, function(key, val) {
        if (key == "__all__") {
            $(form).prepend('<div class="alert alert-block alert-error"><ul></ul></div>');
            $.each(val, function(key, error) {
                $(".alert-error ul").append("<li>" + error + "</li>");
            });
        } else {
            var field_div = $(form).find(".control-group").filter("#div_" + key);
            field_div.addClass("error");
            field_div.children(".controls").append('<span id="error_1_' + key + '" class="help-inline"><strong>' + val + "</strong></span>");
        }
    });
}

jawaidss avatar Apr 19 '12 22:04 jawaidss