Artikel ini menganalisis solusi untuk masalah bahwa Tinymce tidak dapat memperoleh data saat mengirimkan Ajaxform. Bagikan untuk referensi Anda. Analisis spesifiknya adalah sebagai berikut:
Sebelum menggunakan AJAXFORM, saya membuat formulir web pengiriman komentar kecil, dan konten komentar digunakan untuk pengeditan teks. Untuk meningkatkan pengalaman pengguna sedikit, saya akan menggunakan Ajaxform untuk mengimplementasikan pengiriman AJAX. Tetapi saya menemukan sesuatu yang tidak terduga terjadi. Itu adalah setiap kali Anda mengirimkan, Ajaxform tidak akan dapat memperoleh konten komentar yang saat ini diedit, yaitu konten di TextArea. Anda harus mengklik Kirim lagi untuk mengirimkan konten TextArea.
Intinya adalah bahwa konten pada Tinymce tidak diperbarui ke TextArea sebelum dikirimkan. Jadi saya ingin melihat apakah Ajaxform memiliki ikatan acara sebelum disampaikan. Saya menemukan bahwa dalam acara Beforesubmit, konten Formdata telah diisi. Meskipun saya dapat mengisi konten Tinymce saat ini di sini, saya selalu merasa itu tidak terlalu indah.
Untuk mengetahui apakah ada cara lain untuk menyelesaikan masalah ini, saya memeriksa kode sumber Ajaxform dan menemukan bahwa penulis Ajaxform telah mengusulkan solusi terpadu untuk masalah ini. Kode sumber spesifik adalah sebagai berikut:
1. Kode JS adalah sebagai berikut:
Salinan kode adalah sebagai berikut: // pengait untuk memanipulasi data formulir sebelum diekstraksi;
// Nyaman untuk digunakan dengan editor kaya seperti Tinymce atau Fckeditor
var veto = {};
this.trigger ('form-pre-serialize', [this, options, veto]);
if (veto.veto) {
Log ('Ajaxsubmit: Dikirimkan diveto melalui pemicu Form-Pre-Serialize');
kembalikan ini;
}
2. Sesuai dengan fckeditor adalah serupa:
Salin kode sebagai berikut: // Formulir Bind Menggunakan 'Ajaxform'
$ ('#commentForm'). Ajaxform (opsi);
// ikat peristiwa Form-Pre-Serialize dan simpan data TinyMCE ke dalam tekstarea sebelum memicu acara ser-serilisasi.
$ ('#commentForm'). Bind ('Form-pre-Serialize', fungsi (acara, formulir, opsi, veto) {
tinymce.triggersave ();
});
Saya harap artikel ini akan membantu pemrograman JavaScript semua orang.