Skip to content

Instantly share code, notes, and snippets.

@sorentwo
Created January 3, 2012 18:09
Show Gist options
  • Save sorentwo/1556123 to your computer and use it in GitHub Desktop.
Save sorentwo/1556123 to your computer and use it in GitHub Desktop.
Simple form error display
Backbone ||= {}
# This takes the place of the standard form / simple_form helpers in
# automatically displaying form errors when the errors have been sent back as
# json.
Backbone.form_errors = (selector, errors) ->
$form = $(selector)
clear_field = ($wrapper) ->
$wrapper.removeClass('field_with_errors')
$wrapper.find('span.error').remove()
mark_field = ($wrapper, message) ->
$wrapper.addClass('field_with_errors')
$wrapper.append("<span class='error'>#{message}</span>")
# Reset all errors
clear_field($(field)) for field in $form.find('fieldset, div')
# Mark any errors with names matching error keys
for name, messages of errors
$field = $("[name*='[#{name}]']", $form)
$wrapper = $field.parent()
message = messages[0]
mark_field($wrapper, message)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment