2010-04-14 57 views
1

這是我第一次使用JS,所以我真的不知道我在做什麼。jQuery/jEditable和jQuery UI對話框。重新填充表格單元格

我有一個數據表,並使用jEditable允許用戶編輯數據並將其發佈到我的PHP腳本。當用戶點擊「保存」時,它會用php腳本中的數據打開jQuery UI,但它似乎工作正常,但是,如果用戶點擊取消或Esc關閉jQuery UI對話框,它們又回到頁面上,但是他們試圖編輯的單元格現在完全是空的。我如何讓細胞重新填充?

謝謝!

$(".editable_textarea").editable("/path/to/my/script.php", { 
    indicator : "<img src='/images/indicator.gif'>", 
    type : 'textarea', 
    submitdata: { _method: "post", uri: "<?php echo $this->uri->segment(3); ?>" }, 
    select : false, 
    submit : 'Save', 
    cancel : 'Cancel', 
    tooltip : "Click to edit...", 
    cssclass : "editable", 
    onblur: "cancel", 
    cssclass: "edit_destination", 
    callback: 
     function(value, settings) { 
      $(this).dialog({ 
       autoOpen: true, 
       width: 400, 
       modal: true, 
       position: "center", 
       resizable: false, 
       draggable: false, 
       title: "Pending Changes", 
       buttons: { 
        "Cancel": function() { 
         $(this).dialog("close"); }, 
        "Confirm Changes": function() { 
         document.findSameDestination.submit(); } 
       } 

      }); 

      $('form#findSameDestination').submit(function(){ 
       $(this).dialog('open'); 
       return false; 
      }); 

     $(this).editable("disable"); 
    }, 
    data: 
     function(value, settings) { 
      var retval = value.replace(/<br[\s\/]?>/gi, '\n'); 
      retval = retval.replace(/(<([^>]+)>)/gi, ''); 
      return retval; 
     } 
    }); 

仍然不知道如何解決這個問題,我沒有足夠的積分以提供賞金......

+0

也許我應該將原始數據保存爲臨時變量,然後將其寫回到表格單元格中取消?我處於虧損狀態。 – solefald 2010-04-15 21:12:18

回答

1

我可能不是正確的,但也可能是cancel事件你與onblur調用。嘗試改變

onblur: "cancel" 

onblur: "function(e){;}" 

這將基本上什麼也不做。如果我的jEditable代碼是正確的,它會在onblur事件時將輸入值恢復爲原來的值,然後在點擊Cancel按鈕時調用它。不過,我可能是錯的 - 它在我的地方是凌晨2點:)

+0

dare2be,謝謝你的回覆。 onblur:部分直接來自jEditable文檔: 「@param字符串選項[onblur]'取消','提交','忽略'或功能??」 那部分工作正常。當我點擊jEditable textarea時,它會在編輯之前更改回表格單元格的內容(即使它在底部出現一個換行符,出於某種奇怪的原因)。 不恢復文本的部分是當我取消jQuery UI對話框。在我看來,並糾正我,如果我錯了,我看到中間某處的某個Ajax函數的國王? – solefald 2010-04-15 01:20:56

+0

對不起,我一定誤解了你。但是,這使得你的問題更加詭異。我迷路了 - 明天將考慮它。 – 2010-04-15 02:06:05

+0

嘿!你包裝了你調用$(「。editable_textarea」)。editable(「/ path/to/my/script.php」,{...})的地方。與$(document).ready(function(){...});?因爲如果我以這種方式包裝它,腳本完美地工作正常(即'取消'按鈕恢復爲原始)! – 2010-04-20 20:27:22

0

你可以在對話框的取消事件中調用blur事件嗎?

Cancel": function() { 
         document.editable_textarea.blur(); 
         $(this).dialog("close"); 

它似乎並不像jEditable的取消事件在對話框關閉時被調用。

+0

謝謝你仁,但這不起作用:(如果我補充說,取消按鈕什麼也沒有做,並在逃生,我仍然提出了一個空表格單元... – solefald 2010-04-15 17:57:28

+0

如何: 文件。可編輯(「取消」); – 2010-04-15 18:10:31

+0

同樣的結果再次:( – solefald 2010-04-15 20:54:11