diff --git a/src/jquery.jeditable.js b/src/jquery.jeditable.js index 810a88d..f0a0a25 100644 --- a/src/jquery.jeditable.js +++ b/src/jquery.jeditable.js @@ -231,6 +231,7 @@ // timeout function var t; + var isSubmitting = false; if (settings.loadurl) { t = self.setTimeout(function() { @@ -339,13 +340,21 @@ form.submit(function(e) { + /* Do no submit. */ + e.preventDefault(); + e.stopPropagation(); + + if (isSubmitting) { + console.warn('...we are already submitting .. stop!'); + return false; + } else { + isSubmitting = true; + } + if (t) { self.clearTimeout(t); } - /* Do no submit. */ - e.preventDefault(); - /* Call before submit hook. */ /* If it returns false abort submitting. */ if (false !== onsubmit.apply(form, [settings, self])) { @@ -668,13 +677,14 @@ var _supportInType = function (type) { for (key in json) { tuples.push([key, json[key]]); // Store: [key, value] } - // sort it - tuples.sort(function(a, b) { - a = a[1]; - b = b[1]; - return a < b ? -1 : (a > b ? 1 : 0); - }); - + if (settings.sortSelectOptions) { + // sort it + tuples.sort(function (a, b) { + a = a[1]; + b = b[1]; + return a < b ? -1 : (a > b ? 1 : 0); + }); + } // now add the options to our select var option; for (var i = 0; i < tuples.length; i++) { @@ -687,14 +697,14 @@ var _supportInType = function (type) { if (key !== 'selected') { option = $('