【问题标题】:ASP.NET MVC and CKEditor - no validationASP.NET MVC 和 CKEditor - 无验证
【发布时间】:2013-03-14 00:42:02
【问题描述】:

我正在使用 CKEditor,它工作正常,但事实证明验证存在问题。我正在使用这个技巧:

$('input[type=submit]').bind('click', function () {
    var ckContent = CKEDITOR.instances.Content.getData(); 
    $("#Content").val(ckContent);
});

使验证工作,但它根本没有帮助。我的意思是,当我发送表单时,它会将值绑定到文本区域,但 jquery 不想验证这一点。当我完全关闭 CKEditor 时,验证在纯文本区域上运行良好。那么有什么问题呢?如何让 CKEditor 与 ASP.NET 的验证一起工作?

【问题讨论】:

    标签: javascript asp.net asp.net-mvc asp.net-mvc-3 ckeditor


    【解决方案1】:

    我认为输入选择发生得太晚而无法验证。所以我认为你需要在模糊 CKEditor 后更新文本框。

    var editor = CKEDITOR.replace('content');
    editor.on('blur', function (e) {
        $("#Content").val(this.getData());
    });
    

    编辑:我假设您正在尝试使必填字段验证器失败/通过。我忘了CKEditor 会放置<p> 标签,即使没有内容(默认情况下)。点击提交按钮,尝试强制更新:

    $('input[type=submit]').bind('click', function () {
        CKEDITOR.instances.Content.updateElement();
    });
    

    第二次编辑:默认情况下,jQuery 验证不验证隐藏字段。要使用 MVC 的无障碍 javascript 覆盖该功能,请在包含验证之后添加 $.validator.setDefaults({ ignore: '' });。这将允许验证页面上的所有字段。

    【讨论】:

    • 检查更新的答案,如果您尝试验证必填字段,我认为这对您有用。
    • 还是什么都没有。 :/我检查了萤火虫,当我点击提交时,你的代码被点击了,但是没有任何反应,表单通过了。
    • 我使用的是旧版本的一切。你是完全正确的。显然在最近的某个时间点,可能随着 jQuery 1.9 的更新,所有隐藏的元素都没有得到验证。因此,在包含验证 javascript 文件之后添加 $.validator.setDefaults({ ignore: '' });,它将验证默认设置为忽略任何内容而不是 :hidden
    • 哇。那成功了。非常感谢,我对验证问题感到沮丧。 :-D
    • 我用隐藏的元素信息编辑了答案,这样它可以帮助其他人免于撞墙!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2011-05-30
    相关资源
    最近更新 更多