gpt4 book ai didi

javascript - jQuery 验证与 Summernote 编辑器错误 : Cannot read property 'replace' of undefined

转载 作者:可可西里 更新时间:2023-11-01 02:02:45 25 4
gpt4 key购买 nike

我正在使用 MVC5 通过 summernote 编辑器构建一个表单。

Razor 代码:

<div class="form-group">
@Html.LabelFor(model => model.Content, htmlAttributes: new { @class = "control-label" })
@Html.EditorFor(model => model.Content, new { htmlAttributes = new { @class = "form-control post-content"} })
@Html.ValidationMessageFor(model => model.Content, "", new { @class = "text-danger" })
</div>

JS:

$('#blog-form .post-content').summernote({
height: 400,
minHeight: 300,
codemirror: {
theme: 'default'
}
});

通过上述设置,编辑器控件呈现良好。但是,一旦我离开编辑器,即 onBlur,我就会在控制台中收到以下错误:

Uncaught TypeError: Cannot read property 'replace' of undefined
at $.validator.escapeCssMeta (jquery.validate.js:1014)
at $.validator.errorsFor (jquery.validate.js:995)
at $.validator.prepareElement (jquery.validate.js:679)
at $.validator.element (jquery.validate.js:466)
at $.validator.onfocusout (jquery.validate.js:289)
at HTMLDivElement.delegate (jquery.validate.js:411)
at HTMLFormElement.dispatch (jquery-2.2.3.js:4737)
at HTMLFormElement.elemData.handle (jquery-2.2.3.js:4549)
at Object.trigger (jquery-2.2.3.js:7819)
at Object.simulate (jquery-2.2.3.js:7890)

这是 DOM 的渲染部分:

    <div class="form-group">
<label class="control-label" for="Content">Content</label>
<textarea class="form-control post-content text-box multi-line" id="Content" name="Content" style="display: none;"></textarea>

<div class="note-editor note-frame panel panel-default">
...summernote generated...
</div>

<span class="field-validation-valid text-danger" data-valmsg-for="Content" data-valmsg-replace="true"></span>
</div>

jQuery 版本:2.2.3

jQuery 验证版本:1.16.0

Microsoft.jQuery.Unobtrusive.Validation 版本:3.2.3

我做了一些研究,已经知道这与summernote插件无关。我尝试在内部和外部文档准备好运行以下代码,但它没有工作:

$.validator.setDefaults({
ignore: ":hidden:not(.post-content)"
});

有什么想法吗?

最佳答案

我使用此脚本告诉验证器忽略 Summernote 元素。可以调整它以忽略由其他 HTML 编辑器生成的元素。

$('form').each(function () {
if ($(this).data('validator'))
$(this).data('validator').settings.ignore = ".note-editor *";
});

关于javascript - jQuery 验证与 Summernote 编辑器错误 : Cannot read property 'replace' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42086841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com