2011-01-29 7 views
8

के साथ सबमिट करने से पहले पुराने और नए मानों को कैसे एक्सेस करें मेरे पास एक फ़ील्ड जेडटेबल द्वारा अपडेट किया जा रहा है। यदि मूल्य कम किया जा रहा है (जिसके परिणामस्वरूप डेटा खो जा रहा है) अपडेट होने से पहले मैं एक चेतावनी संदेश आउटपुट करना चाहता हूं, लेकिन अगर यह बढ़ रहा है तो नहीं।जेडटेबल

यह जेडटेबल के ऑनबूट फ़ंक्शन के लिए एक अच्छा उम्मीदवार प्रतीत होता है, जिसे मैं खुशी से ट्रिगर कर सकता हूं। मैं $ ('इनपुट', यह) .val() से नया मान प्राप्त कर सकता हूं, लेकिन मैं इस संदर्भ में इसकी तुलना करने के लिए मूल मान कैसे प्राप्त करूं?

...

ऊपर स्पष्टीकरण/प्रश्न पोस्ट करने के बाद से, मैं एक तरह के समाधान के साथ आ गए हैं।

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

को

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

से jquery.ready में invokation बदलकर मैं ऑनसबमिट विधि में settings.submitdata.old_value उपयोग कर सकते हैं।

लेकिन निश्चित रूप से एक बेहतर तरीका होना चाहिए? जेडटेबल को अभी भी पुराना मूल्य वापस ले जाना चाहिए ताकि इसे वापस करने में सक्षम हो सके। तो सवाल यह हो जाता है कि मैं इसे ऑनसबमिट फ़ंक्शन से कैसे एक्सेस कर सकता हूं?

किसी भी सुझाव के लिए अग्रिम धन्यवाद।

$(function() { 
     $('.editable').editable(submitEdit, { 
      indicator: '<img src="content/images/busy.gif">', 
      tooltip: '@Html.Resource("Strings,edit")', 
      cancel: '@Html.Resource("Strings,cancel")', 
      submit: '@Html.Resource("Strings,ok")', 
      event: 'edit' 
     }); 
     /* Find and trigger "edit" event on correct Jeditable instance. */ 
     $(".edit_trigger").bind("click", function() { 
      $(this).parent().prev().trigger("edit"); 
     }); 
    }); 

submitEdit में origvalue संपादित

function submitEdit(value, settings) { 
     var edits = new Object(); 
     var origvalue = this.revert; 
     var textbox = this; 
     var result = value; 

     // sb experiment 
     var form = $(this).parents('form:first'); 
     // end experiment 

     edits["field"] = form.find('input[name="field"]').val(); 
     edits["value"] = value; 
     var returned = $.ajax({ 
      url: '@Url.Action("AjaxUpdate")', 
      type: "POST", 
      data: edits, 
      dataType: "json", 
      complete: function (xhr, textStatus) { 
       // sever returned error? 
       // ajax failed? 
       if (textStatus != "success") { 
        $(textbox).html(origvalue); 
        alert('Request failed'); 
        return; 
       } 

       var obj = jQuery.parseJSON(xhr.responseText); 
       if (obj != null && obj.responseText != null) { 
        alert(obj.responseText); 
        $(textbox).html(origvalue); 
       } 
      } 
     }); 
     return (result); 
    } 

उत्तर

8

यहाँ है मेरी संपादन योग्य (यह submitEdit समारोह उपयोग कर रहा है) इस लाइन को अपने submitdata चर

"submitdata": function (value, settings) { 
     return { 
      "origValue": this.revert 
     }; 
} 
पर जोड़ें
11

एक बहुत आसान समाधान के लिए हो रहा था जब मूल मूल्य है: