在我的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事件方法,例如验证失败?那可能有用...
谢谢!
答案 0 :(得分:0)
将TinyMCE注入页面后,原始表单元素(例如<textarea>
)将不再可见。如果您使用浏览器工具,将会看到TinyMCE注入了一系列<div>
和一个<iframe>
,有效地隐藏了<textarea>
。
因此,如果您要求验证工具查看<textarea>
中的值,则它可能仍具有首次加载TinyMCE时的初始值。
为了使您的验证工具验证基础的<textarea>
,您首先必须使用TinyMCE的当前内容更新<textarea>
。为此,您需要使用TinyMCE的triggerSave()
API。这将迫使TinyMCE立即使用编辑器中的当前值更新基础<textarea>
。届时,您的验证工具将知道编辑器中存在什么内容。