이 기사는 ajaxform을 제출할 때 Tinymce가 데이터를 얻을 수없는 문제에 대한 해결책을 분석합니다. 참조를 위해 공유하십시오. 특정 분석은 다음과 같습니다.
Ajaxform을 사용하기 전에 작은 주석 제출 웹 양식을 작성했으며 주석 내용을 텍스트 편집에 사용했습니다. 사용자 경험을 약간 늘리려면 Ajaxform을 사용하여 Ajax 제출을 구현합니다. 그러나 나는 예상치 못한 일이 일어난 것을 발견했습니다. 제출할 때마다 Ajaxform은 현재 편집 된 댓글 컨텐츠, 즉 Textarea의 내용을 얻을 수 없습니다. Textarea의 내용을 제출하려면 다시 제출을 클릭해야합니다.
요점은 tinymce의 내용이 제출하기 전에 TextRea로 업데이트되지 않는다는 것입니다. 그래서 Ajaxform에 제출하기 전에 이벤트 바인딩이 있는지 확인하고 싶었습니다. Beforesubmit 이벤트에서 FormData의 내용이 채워 졌음을 알았습니다. 여기에서 현재 Tinymce 컨텐츠를 채울 수는 있지만 항상 아름답 지 않다고 생각합니다.
이 문제를 해결하는 다른 방법이 있는지 알아 내기 위해 Ajaxform의 소스 코드를 확인한 결과 Ajaxform의 저자 가이 문제에 대한 통합 솔루션을 제안했습니다. 특정 소스 코드는 다음과 같습니다.
1. JS 코드는 다음과 같습니다.
코드 사본은 다음과 같습니다. // 양식 데이터를 추출하기 전에 조작하기위한 후크;
// tinymce 또는 fckeditor와 같은 풍부한 편집자와 함께 사용하기 편리합니다.
var veto = {};
this.trigger ( 'form-pre-serialize', [this, 옵션, 거부권]);
if (veto.veto) {
log ( 'ajaxsubmit : form-pre-serialize 트리거를 통해 거부 된 제출');
이것을 반환하십시오;
}
2. fckeditor에 해당하는 것은 유사합니다.
다음과 같이 코드를 복사하십시오 : // 'ajaxform'을 사용하여 양식 바인드
$ ( '#commentform'). ajaxform (옵션);
// Form-Pre-Serialize 이벤트를 바인딩하고 Tinymce 데이터를 Textarea에 저장하기 전에 Form-Serilize 이벤트를 트리거합니다.
$ ( '#commentform'). bind ( 'form-pre-serialize', function (이벤트, 양식, 옵션, 거부권) {
tinymce.triggersave ();
});
이 기사가 모든 사람의 JavaScript 프로그래밍에 도움이되기를 바랍니다.