0

我已经实现了 Alex Gorbatchev 的 Synthax 荧光笔,它工作得很好,但是当用户双击突出显示的文本(那时它变成了 textarea 的 div)时,它进入了编辑模式(使用突出显示的文本数据动态生成无名 textarea在里面)。我创建了一个按钮,并执行单击事件,试图从中获取新输入/编辑的文本以通过 ajax 重新发布,但我不断收到 textarea 中的旧文本(变成高亮的 div)或“未定义” . 我正在使用 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
    }); 
4

1 回答 1

0

为了获取数据,您使用$("textarea").val();which返回 textarea. document文档:http ://api.jquery.com/val/

你需要的是这样的:$("textarea:last").val();. 这将返回最后一个的textareadocument。假设它将是最后一个textareadocument因为您提到它在切换到编辑模式之前被动态插入。

于 2012-10-14T04:04:28.683 回答