我已经实现了Alex Gorbatchev的Synthax荧光笔,并且它工作得很好,但是当用户双击突出显示的文本(然后成为textarea的div)时,它进入编辑模式(在其中生成无名文本区域,其中包含高位文本数据)。我创建了一个按钮,并执行点击事件尝试从中获取新输入/编辑的文本以通过ajax重新发布它,但我不断获得textarea中的旧文本(变成一个高级div)或者#39 ;未定义&#39 ;.我使用jQuery来获取新输入的文本,但没有运气。非常感谢任何帮助!
extends layout
block content
h2=d.title
a(class='button', href='/documents/' + d._id + '/edit') Edit
p
a(href='/documents', class='button')
← All Documents
script(type="text/javascript")
SyntaxHighlighter.all();
SyntaxHighlighter.config.tagName = "textarea";
form(name="form1")
div(style="width:800px; margin:0 auto; border: 2px grey solid;")
textarea(class="brush: js;", style="width:800px;", readonly="true", id = "srcText", disabled)
=d.data || ''
button(id="submit", class='button')
script
$("#submit").click(function (e) {
console.log("boom");
var dId = '#{d._id}';
var dData = $("textarea").val(); // << -- problem here cant obtain the value
console.log("DATA is: ", dData);
var updateDocumentIdPath = "/documents/" + dId + "/update";
$.ajax({
url: updateDocumentIdPath,
type: "POST",
data: {"data": dData},
success: function (data) {
console.log("success");
console.log(data);
},
error: function () {
console.log("error");
},
complete: function () {
}
}); // END ajax
});
答案 0 :(得分:0)
要获取数据,您使用的是$("textarea").val();
,它会在textarea
中返回 first document
的值。文档:http://api.jquery.com/val/
您需要的是:$("textarea:last").val();
。这将返回textarea
中最后document
的值。假设它是textarea
中的最后一个document
,因为你提到它在切换到编辑模式之前被动态插入。