需要 TinyMCE 防止发送表单

Man*_*eru 6 javascript php cakephp tinymce

我对 TinyMCE 有问题。在我基于 CakePHP v3 的应用程序中,我有一个表单来添加忠诚度任务。有一个字段使用 tinymce 来描述任务。

所以问题是当我用数据填写表单并点击提交按钮时什么也没有发生。更重要的是,还有用于编辑任务的表单,它可以完美运行(完全相同)。没有为有问题的表单添加自定义 JS。

我知道在 textarea 上带有 require 的 TinyMCE 会导致问题,因为当我禁用 required 时它可以完美运行。

一些代码:
TinyMCE 初始化:

tinymce.init({
    selector: 'textarea.tinymce',
    height: 500,
    plugins: [
        "advlist autolink link image lists charmap preview hr anchor image",
        "wordcount visualblocks visualchars fullscreen insertdatetime nonbreaking",
        "table paste"
    ],
    toolbar1: "undo redo cut copy paste | bold italic underline strikethrough subscript superscript | alignleft aligncenter alignright alignjustify | table",
    toolbar2: "formatselect | outdent indent | bullist numlist | blockquote link unlink charmap hr image | preview",
    menubar: false,
    content_css: [
        '//www.tinymce.com/css/codepen.min.css'
    ]
});
Run Code Online (Sandbox Code Playgroud)

表格(删除了几个元素):

<?= $this->Form->create(null, ['enctype'=>'multipart/form-data']); ?>
<div class="col-xs-12">
    <div class="form-group">
        <label>Tytu?</label>
        <input type="text" name="title" class="form-control" required="required"/>
    </div>
</div>
//additional elements
<div class="col-xs-12">
    <div class="form-group">
        <label>Tre?? zadania</label>
        <textarea name="task" class="form-control tinymce" required="required"></textarea>
    </div>
    <input type="submit" class="" value="Dodaj"/>
</div>
<?= $this->Form->end(); ?>
Run Code Online (Sandbox Code Playgroud)

使用的 TinyMCE 版本:4.6.4(最新)

Man*_*eru 5

感谢您的快速回复,但我自己在 tinymce 支持论坛上找到了答案。

对于会遇到此问题的其他人:只需将下面的代码添加到您的 tinyMCE 初始化中。

setup: function (editor) {
    editor.on('change', function (e) {
        editor.save();
    });
}
Run Code Online (Sandbox Code Playgroud)


小智 0

您的编辑表单可能与添加表单相同,但在编辑时,您将在必填字段中包含一些数据,因此required选项不会导致任何问题。在添加表单中存在相反的情况 - 您有空字段,并且验证失败。为了解决这个问题,您可以required="required"从tinymce输入中删除,并进行额外的验证——无论是在客户端的js中,还是在服务器上的cakephp表类中。