为什么我无法在Jquery插件中使用FormData从tinymce编辑器获取textarea的值?

时间:2015-10-17 10:43:42

标签: javascript jquery codeigniter tinymce tinymce-4

我正在使用 Jquery插件 Tinymce编辑器,使用Codeigniter向数据库添加一些帖子数据。

我的问题我无法从使用 Tinymce编辑 textarea 中获得所有价值,但另一个领域的效果非常好。

这是我的 Tinymce编辑

<script type="text/javascript">
    $(document).ready(function () {
        tinymce.init({
            selector: "textarea",
            theme: "modern",
            base_url: false,
            external_filemanager_path: "/filemanager/",
            filemanager_title: "Responsive Filemanager",
            external_plugins: {"filemanager": "<?PHP echo base_url('../filemanager/plugin.min.js') ?>"},
            relative_urls: false,
            plugins: [Full uption ],
            toolbar1: "insertfile undo redo | bold italic | alignleft aligncenter alignright alignjustify ",

        });
    });
</script>

这是我的 Jquery插件

<script>
    $(document).ready(function () {

        $("#do_upload").on('click', function () {
            if ($("#ch_title").val() === '') {
                alert("You have to input all Chineses language field");
                $("#ch_title").addClass('error');
            }
            if ($("#kh_title").val() === '') {
                alert("You have to input all Khmer language field");
                $("#kh_title").addClass('error');
            }
        });
        $("#eng_form").submit(function (e) {
            e.preventDefault();
        }).validate({
//             ignore: "",
            rules: {
                eng_title: {
                    required: true
                },
                eng_dd: {
                    required: true
                },
                kh_dd: {
                    required: true
                },
                eng_up_img: {
                    required: true
                }, 
            },
            submitHandler: function () {

                $.ajax({
                    url: '<?PHP echo base_url('image/rupload'); ?>',
                    type: 'POST',
                    data: new FormData($('#eng_form')[0]),
                    contentType: false,
                    cache: false,
                    dataType: 'json',
                    processData: false,
                    beforeSend: function (xhr) {
                        $("#teset").modal('show');
                        $('<img style="width:60px; height:auto;" src="<?PHP echo base_url('assets/admin/img/ajax-loader-2.gif'); ?>"/>').appendTo("#loading_img");
                    }, complete: function (jqXHR, textStatus) {
                        if (textStatus == 'success') {
                            $("#loading_img").html('');
                            $("#teset").modal('hide');
                            $("#img_modal").modal('hide');
                            $($('#img_upload')).closest($('form')).find("input[type=text], textarea").val(" ");
                            window.location.href = '<?PHP echo base_url('slide/right'); ?>';
                        }
                    }, success: function (data) {

                        var size = data.img_pro.upload.file_size;
                        if (size >= 2048) {
                            alert("Your images size can't more than 2MB" + "Your size:" + size);
                        } else if (data.res === false) {
                            alert("Your images is not correct");
                        }
                    }
                });
            }

        });
    });
</script>

如果我对阵列变量 DD 描述 使用 Tinymce编辑器,结果我无法获得所有textarea值

enter image description here

1 个答案:

答案 0 :(得分:1)

在捕获表单数据之前,您可能需要使用编辑器的内容更新<textarea>。我猜,所以假设你在创建FormData对象时抓取字段值。

如果这是真的,那么FormData构造函数中的某个地方通过调用tinymce.Editor.save()将tinymce编辑器内容移动到<textarea>。例如,如果在名为editor的var中引用了activeEditor实例,则editor.save()将更新关联的<textarea>元素。

之后,您可以使用JQuery .val()函数获取字段的值,即。 someVar = $(#fieldName).val();显然,您需要提供适当的名称来代替someVar#fieldName