Este artigo analisa a solução para o problema que o TINYMCE não pode obter dados ao enviar o Ajaxform. Compartilhe para sua referência. A análise específica é a seguinte:
Antes de usar o Ajaxform, fiz um pequeno formulário da Web de envio de comentários e o conteúdo do comentário foi usado para edição de texto. Para aumentar um pouco a experiência do usuário, usarei o Ajaxform para implementar o envio do AJAX. Mas eu encontrei algo inesperado aconteceu. É que toda vez que você enviar, o Ajaxform não poderá obter o conteúdo do comentário atualmente editado, ou seja, o conteúdo da Textarea. Você deve clicar em enviar novamente para enviar o conteúdo da Textarea.
O ponto é que o conteúdo do TINYMCE não é atualizado para a Textarea antes do envio. Então, eu queria ver se o Ajaxform tem ligação ao evento antes do envio. Descobri que, no evento Beforesubmit, o conteúdo do FormData foi preenchido. Embora eu possa preencher o conteúdo atual do Tinymce aqui, sempre sinto que não é muito bonito.
Para descobrir se existem outras maneiras de resolver esse problema, verifiquei o código -fonte do Ajaxform e descobri que o autor da Ajaxform propôs uma solução unificada para esse problema. O código -fonte específico é o seguinte:
1. O código JS é o seguinte:
A cópia do código é a seguinte: // gancho para manipular os dados do formulário antes de serem extraídos;
// conveniente para uso com editores ricos como Tinymce ou FCKeditor
var veto = {};
this.Trigger ('form-pre-serialize', [isto, opções, veto]);
if (veto.veto) {
log ('ajaxsubmit: enviado enviado via gatilho de formulário-pré-serialização');
devolver isso;
}
2. Correspondente ao fckeditor é semelhante:
Copie o código da seguinte
$ ('#CommentForm'). Ajaxform (opções);
// Ligue o evento Form-Pre-Seialize e salve os dados do TINYMCE na textarea antes de desencadear o evento de serições de formulário.
$ ('#CommentForm'). bind ('form-pre-serialize', função (evento, formulário, opções, veto) {
tinymce.TriggersAve ();
});
Espero que este artigo seja útil para a programação JavaScript de todos.