How to access old and new values before submitting with jeditable

petercoles picture petercoles · Jan 30, 2011 · Viewed 8.9k times · Source

I have a field being updated by jeditable. I want to output a warning message before submitting updates if the value is being reduced (which would result in data being lost), but not if it's being increased.

This seems a good candidate for jeditable's onsubmit function, which I can trigger happily. I can get the new value from $('input', this).val(), but how do I get the original value to which to compare it in this context?

...

Since posting the above explanation / question, I've come up with a solution of sorts. By changing the invokation in jquery.ready from

$('#foo').editable(...);

to

$('#foo').hover(function(){
  var old_value = $(this).text();
  $(this).editable('ajax.php', {
     submitdata {'old_value':old_value}
  });
});

I can use settings.submitdata.old_value in the onsubmit method.

But there surely has to be a better way? jeditable must still have the old value tucked away somewhere in order to be able to revert it. So the question becomes how can I access that from the onsubmit function?

Many thanks in advance for any suggestions.

Answer

Charlie Strawn picture Charlie Strawn · May 17, 2012

A much easier solution would be to add this line to your submitdata variable

"submitdata": function (value, settings) {
      return {
           "origValue": this.revert
      };
 }