var ModalFormView = ModalView.extend({ events: { "submit form": "submit" }, initialize: function(){ this.$form = this.$("form") this.$errors = this.$(".errors") this.$errorList = this.$(".errorList") }, reset: function(){ this.$("input").not("[type='submit']").not("[type='hidden']").val("") }, load: function(){ this.reset() this.show() }, showErrors: function(errors){ if (errors && errors.length) { this.$errors.show(); for (var i in errors) { this.$errorList.append('
' + errors[i] + '
'); } } }, submit: function(e){ e.preventDefault() this.$errors.hide(); this.$errorList.empty(); if (this.validate) { var errors = this.validate() if (errors && errors.length) { this.showErrors(errors) return } } var fields = this.$form.serializeArray() fields.forEach(function(pair){ if (pair.name == "password" && pair.value.length > 0) { pair.value = SHA1.hex('lol$' + pair.value + '$vvalls') } }) var request = $.post(this.action, $.param(fields)); request.done($.proxy(function (response) { if (response.error) { this.$errors.show(); var errors = [] for (var key in response.error.errors) { errors.push(response.error.errors[key].message); } this.showErrors(errors) return } else { this.success && this.success(response) } }, this)); } })