使用laravel-jsvalidation插件的错误消息不适用于tinyMCE

时间:2018-11-02 08:28:33

标签: validation laravel-5 tinymce-4

在我的Laravel 5.7应用程序中,我使用laravel-jsvalidation插件(https://github.com/proengsoft/laravel-jsvalidation/wiki/Basic-Usage) 一切正常,包括textarea输入,如:

<div class="form-row mb-3 {{ in_array('description', $errorFieldsArray) ? 'validation_error' : '' }}">
    <label class="col-xs-12 col-sm-4 col-form-label">Description</label>
    <div class="col-xs-12 col-sm-8">
        {{ Form::textarea('description', isset($vote->description) ? $vote->description : '', [   "class"=>"form-control editable_field textarea_input ", "rows"=>"5", "cols"=> 120, "placeholder"=>"Enter string description in 255 characters.", "id"=>"description", "autocomplete"=>"off"  ] ) }}
    </div>
</div>

但是在为文本区域输入添加tinyMCE之后,我遇到了一个问题,因为需要描述,所以我看不到错误消息 关于textarea输入的验证失败。 tinyMCE输入的来源非常复杂https://imgur.com/a/nMDq0mY 而且我不知道如何解决它。 1)有办法吗?

2)如果laravel-jsvalidation插件具有一些javascript事件方法,例如验证失败?那可能有用...

谢谢!

1 个答案:

答案 0 :(得分:0)

将TinyMCE注入页面后,原始表单元素(例如<textarea>)将不再可见。如果您使用浏览器工具,将会看到TinyMCE注入了一系列<div>和一个<iframe>,有效地隐藏了<textarea>

因此,如果您要求验证工具查看<textarea>中的值,则它可能仍具有首次加载TinyMCE时的初始值。

为了使您的验证工具验证基础的<textarea>,您首先必须使用TinyMCE的当前内容更新<textarea>。为此,您需要使用TinyMCE的triggerSave() API。这将迫使TinyMCE立即使用编辑器中的当前值更新基础<textarea>。届时,您的验证工具将知道编辑器中存在什么内容。