ASP.net Ajax工具包中的HTML编辑器中的错误

时间:2009-10-05 16:49:46

标签: asp.net ajaxcontroltoolkit html-editor

我正在尝试使用ASP.net自定义验证程序控件验证HTML编辑器的内容。我们的想法是检查是否输入了一些内容 - 与必填字段验证器的工作方式相同。

在ClientValidationFunction =“SomeFunction”中,我引用了这个函数:

 function SomeFunction(source, args)
    {
        var editor = $find("<%=htmlEditor.ClientID%>");
        var content = editor.get_content();
        var isValid = content.length > 0;
        editor.set_content(content); 
        args.IsValid = isValid;
    }

我在获取内容之后设置内容的原因是,这是让内容在编辑器中重新注册的黑客攻击。出于某种原因,如果我在第二次尝试回复时没有重置内容 - 一旦它被验证 - 从第一次尝试开始,空内容将被回发而不是有效内容。

有没有人知道如何检查HTML编辑器的内容,而不必重置内容?或者,如果使用set_content()重置它,没有取消激活字体大小和字体样式菜单?

2 个答案:

答案 0 :(得分:1)

好的,通过更新到Ajax Toolkit的最新版本(2009年9月)来解决这个问题。

不再需要set_content()hack。只需从上面的javascript代码中删除它,自定义验证器就可以了。 HTML编辑器现在将更新的内容传递给服务器:“Woohoo!”

感谢Obout的工作人员修复错误! : - )

答案 1 :(得分:1)

正如我在上一篇文章中所说,你不应该需要set_content hack。这是我的代码,我用它来验证编辑器不是空的:

  <asp:CustomValidator 
                    CssClass="errorMessage" 
                    ID="HtmlEditorValidator" 
                    runat="server" 
                    ErrorMessage="Release Note cannot be empty"
                    Display="None" 
                    ControlToValidate="radEditor"
                    EnableClientScript="true"
                    ClientValidationFunction ="checkEditorNotEmpty"
                    OnServerValidate="CheckEditorNotEmptyServerSide"
                    ValidateEmptyText="true">
</asp:CustomValidator>  

function checkEditorNotEmpty(source, args)
        {
            var editor = $find("<%=radEditor.ClientID%>");
            var cont = editor.get_text();
            var isValid = cont.length > 0;
            args.IsValid = isValid;
        }

//在后面的代码中:

  protected void CheckEditorNotEmptyServerSide(object sender, ServerValidateEventArgs args)
        {
            bool valid = args.Value.Length > 0;
            args.IsValid = valid;
        }

这适用于9月发布,我希望他们没有错过Novemeber版本中的错误修复:这将是非常奇怪的。

HTH