0

Alex GorbatchevのSynthax蛍光ペンを実装しましたが、うまく機能していますが、ユーザーが強調表示されたテキスト(それまでにtextareaからdivになりました)をダブルクリックすると、編集モードになります(強調表示されたテキストデータを使用して名前のないtextareaをその場で生成します)初期化)。ボタンを作成し、新しく入力/編集したテキストを取得してajaxを介して再POSTしようとするクリックイベントを実行しましたが、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
    }); 
4

1 に答える 1

0

データを取得するために、を使用して、の最初$("textarea").val();値を返します。ドキュメント:http ://api.jquery.com/val/ textareadocument

必要なものは次のようなものです$("textarea:last").val();。これにより、の最後の値が返さtextareaれますdocument。編集モードに切り替える前に動的に挿入されると述べtextareaたので、これが最後になると仮定します。document

于 2012-10-14T04:04:28.683 に答える