이것은 불행히도 특정 요청 비트입니다.자바 스크립트에서 두 개의 다른 소스의 문자열 비교
나는 사용자가 다양한 게시물에 대한 주석 편집기에 텍스트를 입력 할 수있는 CMS가 있습니다. 편집기는 한 페이지에서 여러 게시물을 편집 할 수 있도록 ajax를 통해로드됩니다. 취소를 클릭하면 본문에 대한 수정 사항이 있는지 확인할 수 있기를 원합니다.
현재 ajax 호출 중에 데이터베이스의 텍스트 값을 얻고 json_encode를 호출 한 다음 콜백 중에 자바 스크립트 변수에 저장하여 나중에 확인합니다. 숨겨진 텍스트 영역의 현재의 값을 클릭 취소하면 다음과 같이 jquery.val()를 사용하여 잡고 이전 아약스 호출에서 저장된 값에 대해 확인 (제출에 대한 데이터를 저장하기 위해 TinyMCE에 의해 사용) :
if(stored_value!=textarea.val())
{
return true
}
변경 사항이없는 경우에도 현재 항상 true를 반환합니다.
이 문제는 textarea.val()이 html 엔티티를 사용하는 반면 ajax jsoned 버전은 html 엔티티를 사용하지 않는 것으로 보입니다.
불을 지르고에서 아약스의 응답은 다음과 같습니다
<p>some text</p>
<p>some more text</p>
이 분명 다르지만, 어떻게 그들을 처리 할 얻을 수 있습니다 :
<p>some text<\/p>\r\n<p>some more text<\/p>
텍스트 영역의 소스 코드는 다음과 같습니다 같은 때 평가?
자바 스크립트를 사용하여 문자열의 최종 출력을 비교하거나 한 문자열을 다른 문자열로 변환하는 함수가 있습니까?
ajax 페이지에서 html 엔티티를 사용해 보았지만 경고시 html 엔티티가 포함 된 문자열이 반환되었으므로 json_encoding이 문자로 변환했기 때문에이를 가정합니다.
도움을 주시면 감사하겠습니다. jQuery로
ajaxResponse.escapeHTML();
나는 좀 더 다른 생각 : 비교하기 전에 prototype와
JS 디버그에는 방화 광구를 사용해야합니다. console.log (stored_value, '-', textarea.val()) $ ('textarea # mytextarea')를 사용해야하므로 jquery를 올바르게 사용하고 있는지 궁금합니다. –
죄송합니다. 저는 시간을 절약하기 위해 일을 생략했습니다. $ (textarea # mytextarea ')와 같은 것을 사용합니다. val()은 텍스트 영역의 값을 얻었음을 보여주기 위해 textarea.val()로 단순화했습니다. – andyface