2012-10-14 2 views
0

Alex Gorbatchev의 Synthax 형광펜을 구현했습니다. 사용자가 강조 표시된 텍스트를 두 번 클릭하면 텍스트 영역에서 div가됩니다. 편집 모드 (하이라이트 된 텍스트 데이터가있는 상태에서 이름없는 텍스트 영역을 즉석에서 생성합니다). 나는 버튼을 만들고 클릭 이벤트를 새로 입력/편집 된 텍스트를 가져 와서 AJAX를 통해 다시 가져 오려고했지만 textAla (하이라이트 된 div로 바뀌 었음) 또는 'undefined'중 하나를 계속 가져옵니다. . 나는 새로 입력 한 텍스트를 얻기 위해 jQuery를 사용하지만 운이 없다. 어떤 도움이라도 대단히 감사합니다! , 당신은 document첫번째textarea의 값을 반환 $("textarea").val();을 사용하고있는 데이터를 얻기 위해synthax highlighter - 텍스트 영역 요소에서 강조 표시된 텍스트 편집

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

. 문서 : http://api.jquery.com/val/

$("textarea:last").val();과 같은 것이 필요합니다. document에있는 마지막 textarea의 값을 반환합니다. 편집 모드로 전환하기 전에 동적으로 삽입되었다고 언급 했으므로 document에있는 마지막 textarea이라고 가정합니다.

+0

답변 해 주셔서 감사합니다. 여전히이 변수는 정의되지 않았습니다. 나는 일시적인 텍스트 영역을 벗어난 후 즉시 값을 잃어 버리게된다고 생각한다. (사실, 텍스트 영역을 클릭/체크 아웃하면 textarea 태그는 포커스 아웃이 발생하자마자 사라진다. –