我有網站上有一些列,並且它們的列可以通過textarea編輯,如果你想編輯的列有一些內容,那麼舊的內容將被放到textarea中。然後在保存按鈕上將該文本區域的值存儲到一個變量中,如果我警告此變量,它將提醒與舊內容相同的值。jquery textarea沒有更新它的值
的想法是biscally這樣的:FIDDLE
凡textarea的更新一個div,當你點擊保存,並得到上述內容在div當你點擊編輯。這個簡單的工作,因爲它應該,但我與我的代碼trupple,我找不到錯誤。並且在控制檯中也沒有錯誤。
在我所做的例子和我的問題的地方differense是我使用ajax調用來獲取舊內容。
首先這裏是編輯點擊會發生什麼:
$('body').on('click', '.edit_column', function() {
column_to_edit = $(this).parent().parent().attr('id');
current_step = "edit";
$.ajax({
url: 'pageEditor_ajax.php',
dataType: 'json',
async: false,
type: 'post',
data: {
item_id: column_to_edit,
mode: "edit_item"
}, success:function(s) {
element_type = s.type;
old_content = s.content;
}, error:function(e) {
alert('Error!');
}
});
if(element_type == 'text') {
$('.input_type').html('<textarea class="dialog_editor element_content"></textarea>');
}
$('.element_content').val(old_content);
$('.column_tool_dialog').css('display', 'block');
$('#edit_column_dialog').css('display', 'block');
$('#edit_column_dialog').animate({
left: "-=300px",
opacity: "1"
},500);
});
首先,我找到我想要編輯的列的ID,所以我認爲即時通訊編輯我的數據庫中的右列舒爾。
current_step變量僅用於外觀,有一些不同的對話框。
我讓我的ajax調用返回成功。
然後,我有一個if語句來檢查它是什麼類型的列,我有3種類型,其他兩個是圖像和標題,沒有啓動它們,因爲它還沒有工作。
if語句應該構建需要編輯該列類型的輸入。
在輸入字段構建後,它將old_content放入textarea,這也可以正常工作。最後幾行只是爲了讓下一個對話框生動畫面。所以我的編輯步驟有效(我認爲)。
然後你看到textarea,並且我有它的舊內容。當您單擊保存按鈕,出現這種情況:
$('#element_edit_button').click(function(e) {
e.preventDefault();
new_content = $('.element_content').val();
alert(new_content);
$.ajax({
url: 'pageEditor_ajax.php',
dataType: 'json',
async: false,
type: 'post',
data: {
item_id: column_to_edit,
item_content: new_content,
col_type: element_type,
mode: "save_item",
item_attr_alt_tag: alt_tag,
item_attr_title_tag: title_tag
}, success:function(s) {
}, error:function(e) {
alert('Der skete en fejl!');
}
});
$('li#'+column_id+' .preview_content').html(new_content);
$('li#'+column_id+' > div > small').html(new_content);
});
在這一步,我有很多事情只是外觀上來看,所以我已經排除他們這一次。但是這裏的問題很簡單,new_content變量與old_content一致嗎?因此,所有使用new_content的地方都不會更新。
編輯 下面是HTML在這一切發生了:
<div id=\"edit_column_dialog\" class=\"column_tool_dialog_box\">
<div class=\"close\">x</div>
<h3>Rediger dit element</h3>
<form method=\"post\" id=\"save_element\">
<p class=\"error_message\"></p>
<div class=\"input_type\"></div>
<input id=\"element_edit_button\" class=\"green dialog_button\" type=\"submit\" value=\"Gem element\" />
</form>
</div>
</div>
對不起,長的帖子,希望有人有awnser。
您還應該發佈您的相關HTML,它將有助於快速解答您的問題。 – Tomanow
好吧,我已經更新了我的問題與HTML – Legarndary
好..因爲你的一些邏輯是有點無意義的.. –