2011-11-02 78 views
0

我試圖創建一個前端編輯器,我使用的是AJAX調用獲取數據到一個新的div,像這樣的新創建的div:jQuery的 - 編輯與jEditable不工作

function renderForm(type, position) { 
    $.ajax({ 
     type: 'POST', 
     url: 'renderForm.php', 
     data: "type="+type+"&position="+position, 
     success: function(data){ 
      var editbutoff = $(editbut).offset(); 
      $(document.createElement('div')).attr('id', 'editor') 
       .height(($(divpar).height()+20)) 
       .width(($(divpar).width()+20)) 
       .css({position: 'absolute', left: editbutoff.left-($(divpar).width()+20), top: editbutoff.top-20, margin: "5px"}) 
       .append(data) 
       .fadeIn("slow") 
       .prependTo(pptest); 
     } 
    }); 
} 

一切很棒'直到這裏。新的div顯示數據到位,一切看起來都應該如此,但是隨後出現問題!

我試圖使用jEditable插件編輯新創建的數據,但作爲新創建的div是不存在加載文檔時,我做了一個.live事件,像這樣:

$("#editor").live('mouseenter', function(){ 
    $('.edt').editable(function(){ 
     console.log($(this).val()); 
    }); 
    $('.edtta').editable(function(){ 
     console.log($(this).val()); 
    }, { 
     type: 'textarea' 
    }); 
}); 

現在的問題是:

當我.edt元素上單擊插件火起來,創建一個新的input,並在其中顯示原始文本,但作爲.edt元素是新的,當我嘗試後可編輯的數據在控制檯中顯示爲<h1 class="edt"><h1 class="edt">是jEditable創建的輸入字段的父項。

任何人都可以在正確的方向指向我如何獲得我實際輸入在jEditable輸入字段中的數據嗎?

非常感謝!

回答

1

如果我沒有誤解你的問題,你試圖提交之前提交的數據?如果是這樣,使用的onsubmit方法:

 $('.edt').editable('@Url.Action('Edit', 'Home')', 
     { 
     onsubmit: function (settings, data) { 
      var input = $(data).find('input'); 
      var original = input.val(); 

      alert(original); 
     } 
     } 

您需要使用.find()來獲取輸入,則只能通過.VAL() 希望這有助於:)

+0

真棒獲得的價值!非常感謝你。我認爲在提交之前價值會是一樣的,所以我沒有打擾任何其他測試。這就是我無法深入瞭解插件的原因。 :) – Wowca

+0

很高興我幫助:) – shennyL