2012-09-01 6 views
0

저는 아약스와 관련된 프로젝트를 진행해 왔습니다. 그것은 학교 과제를위한 계획 자입니다. 버튼을 누르면 서버에서 가져온 데이터를 기반으로 31 <textarea> (및 <span>)의 텍스트가 변경됩니다. 문제는 창을 마지막으로 새로 고친 후에 변경된 텍스트 영역이 변경되지 않는다는 것입니다. 서버와 웹 페이지간에 전송 된 JSON을 살펴본 결과, 버그가 ajax 호출의 성공 함수에 있다고 결론을 냈습니다. 코드는 다음과 같습니다.jQuery가 일부 텍스트를 대체하지 않습니다.

success: function(data) {     
    $("span#date").text(data['date']); 
    $("#assignments").find("textarea").each(function() { 
     $(this).text(""); 
     $(this).html(data[$(this).attr("id")]); 
    }); 
    console.log(data); // I was using this to see if the data received from the server was correct 
    } 

대단히 도움이되었습니다.

+0

'data'의'id'가'textarea'의 것과 일치합니까? –

+0

저를 위해 일하십시오 : http://jsfiddle.net/tLsHq/1/. – pimvdb

+0

예. 페이지를 새로 고치면 모든 것이 올바르게 작동합니다. 그러나 텍스트가 올바르게 작동하는지 확인하기 위해 텍스트를 입력 할 때마다 페이지를 새로 고치는 것은 실제로 실용적이지 않습니다. 그것은 내가 AJAX를 처음 사용했던 이유입니다. – dbh937

답변

1

기본적으로 입력이므로 textarea에 .val()을 사용해야합니다.

내부에 HTML 요소가 실제로있을 수 없습니다.

+0

나는 이전에'.val() '을 가지고 있었고 똑같은 일이 일어나고있었습니다. '.text()'와'.val()'과'.html()'을 시도해 보았습니다. 다른 일이 있었는지 알아보기 위해서 매번 같은 일이 일어났습니다. 고마워, 나는'.val()'을 다시 시도 할 것이다. – dbh937

+1

'.html'은 실제로 적절하지 않지만 텍스트 영역에서 작동합니다. – pimvdb

0

.html() 대신 $(textarea).val()을 시도하십시오. html은 텍스트 영역이 처음 렌더링 될 때만 작동한다는 것을 알았습니다.

+0

감사! 이것은 결국 일했다. 내가 왜 그것을 시도 마지막으로 .val() 작동하지 않았다 궁금해 ... 내가 다른 코드를 변경 같아요. 다시 한 번 감사드립니다! – dbh937

관련 문제