我在Laravel表单而不是文本区域中使用了所见即所得编辑器(bootstrap-wysihtml5)。我正在使用laravel-jsvalidation验证表单。但是不幸的是,我的所见即所得编辑器字段未进行前端验证。
这是我的文本区号。
{!! JsValidator::formRequest('App\Http\Requests\MyFormRequest') !!}
<input type='text' name='title' />
<textarea name='content' class="textarea" placeholder="Enter text ..."
style="width: 100%; height: 200px; font-size: 14px; line-height: 18px;"></textarea>
<script>
$('.textarea').wysihtml5();
<script>
我使用表单请求来验证这一点,这是我的请求类。
class MyFormRequest extends FormRequest {
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules() {
return [
"title" => "required",
"content" => "required",
];
}
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize() {
return true;
}
}
标题字段是完全验证的,但不是js验证中的内容字段。如果有人知道该怎么做,那将是一个很大的帮助。 (也没有出现错误)
经过长时间的检查,我发现了问题。像这个链接一样的问题-How to validate wysiwyg editor using bootstrap validation
发生这种情况,所见即所得编辑器隐藏了textarea和jquery验证相关的laravel-jsvalidation,但不适用于隐藏字段。因此,我们需要更改代码,例如,
CSS
.textnothide {
display: block !important;
position: absolute;
z-index: -1;
}
JS
<script>
$('.textarea').wysihtml5(
events: {
load: function () {
$('.textarea').addClass('textnothide');
}
}
);
<script>
希望此问题不是重复的,因为它与laravel-jsvalidation相关,并保留答案,以防其他人遇到相同的问题。