Este artículo analiza la solución al problema de que TinyMCE no puede obtener datos al enviar AJAXFORM. Compártelo para su referencia. El análisis específico es el siguiente:
Antes de usar AjaxForm, hice un formulario web de envío de comentarios pequeños y el contenido de comentarios se usó para la edición de texto. Para aumentar un poco la experiencia del usuario, usaré AJAXFORM para implementar el envío de AJAX. Pero encontré que sucedió algo inesperado. Es que cada vez que envíe, AjaxForm no podrá obtener el contenido de comentarios editado actualmente, es decir, el contenido en TextAREA. Debe hacer clic en Enviar nuevamente para enviar el contenido de TextAREA.
El punto es que el contenido en TinyMCE no se actualiza en TextARea antes de enviar. Así que quería ver si AjaxForm tiene un enlace de eventos antes del envío. Descubrí que en el evento BefefefefefefefefeSubmit, el contenido de FormData se ha llenado. Aunque puedo llenar el contenido actual de TinyMCE aquí, siempre siento que no es muy hermoso.
Para averiguar si hay otras formas de resolver este problema, verifiqué el código fuente de AjaxForm y descubrí que el autor de AjaxForm ha propuesto una solución unificada a este problema. El código fuente específico es el siguiente:
1. El código JS es el siguiente:
La copia del código es la siguiente: // gancho para manipular los datos del formulario antes de extraerlo;
// Conveniente para usar con editores ricos como TinyMCE o FCKEditor
var veto = {};
this.rigger ('formul-pre-serialize', [this, opciones, veto]);
if (veto.veto) {
log ('ajaxsubmit: enviado vetOed a través del disparador de formulario-pre-serialize');
devolver esto;
}
2. Correspondiente a FCKEditor es similar:
Copie el código de la siguiente manera: // Formulario de enlace usando 'AJAXFORM'
$ ('#commentForm'). AJAXFORM (OPCIONES);
// unir el evento Form-PRE-Serialize y guarde los datos TinyMCE en TextAREA antes de activar el evento de serilización de formulario.
$ ('#commentform'). bind ('formul-pre-serialize', function (evento, formulario, opciones, veto) {
tinymce.triggersave ();
});
Espero que este artículo sea útil para la programación de JavaScript de todos.