synthax highlighter - редактирование выделенного текста в элементе textarea

Я реализовал подсветку Synthax Алекса Горбачева, и она прекрасно работает, однако, когда пользователь дважды щелкает по выделенному тексту (который к тому времени стал div от textarea), он переходит в режим редактирования (генерирует безымянную текстовую область на лету с выделенными текстовыми данными). в этом). Я создал кнопку и выполняю событие click, пытаясь получить от нее вновь введенный / отредактированный текст для повторного размещения через ajax, но я продолжаю получать либо старый текст, который был в textarea (который превратился в выделенный div), либо "undefined", Я использую 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
    }); 

1 ответ

Для получения данных вы используете $("textarea").val(); который возвращает значение первого textarea в document, Документы: http://api.jquery.com/val/

Что вам нужно, это что-то вроде: $("textarea:last").val();, Это вернет значение последнего textarea в document, Предполагая, что это будет последним textarea в document так как вы упомянули, что он динамически вставляется до перехода в режим редактирования.

Другие вопросы по тегам