Any help would be greatly appreciated.
=============
var Admin_Options_Model = Backbone.Model.extend({
schema: {"imc_opt_apikey": {"type": "Text", "dataType": "text", "title": "API Key", "fieldClass": null}},
defaults: {"imc_opt_apikey": ""},
url: ajaxurl + '?action=general_options_form_process',
validation: {"imc_opt_apikey": [{"minLength": 32, "msg": "Invalid API Key. The key must be at least 32 characters"}]}
});
var admin_options = new Admin_Options_Model();
var adminOptionsForm = new Backbone.Form({
fieldsets: [{"legend": "General Options", "fields": ["imc_opt_apikey"]}],
model: admin_options,
idPrefix: '',
initialize: function() {
//- THIS LISTENER DOESN'T SEEM TO WORK
this.listenTo(this.model, 'error', this.handleModelError);
},
handleModelError: function(model, xhr, options) {
//- THIS NEVER GETS CALLED WHEN I SEND BACK AN HTTP ERROR RESPONSE CODE (ie 400)
console.log('In handleModelError()');
}
}).render();
Backbone.Validation.bind(adminOptionsForm);
$('div.wrap').append(adminOptionsForm.el);
$('.wrap form.form-horizontal').append("<p class='submit'><input type='submit' id='formsubmit' value='Submit' /></p>");
$('#formsubmit').click(function(e) {
e.preventDefault();
var errors = adminOptionsForm.commit({validate: true});
if (_.isEmpty(errors)) {
//- I AM FORCING THE SERVER RESPONSE FOR THIS TO BE AN HTTP 400 RESPONSE AND A JSON ARRAY OF:
// [{"imc_opt_apikey":"There was an error"}]
admin_options.save(admin_options.attributes);
} else {
console.log('There were errors');
}
});
==============