0

我使用 FCK 编辑器控件而不是 textarea 元素。我安装它没有问题。

但是当我想使用 ASP.Net 2.0 的自定义验证器对其进行验证时,我没有得到预期的结果。

这些行是我拥有的代码:

<textarea style="width:30px;height:20px;" class="ckeditor" id="txtdescription" runat="server" name="txtdescription" cols="5" rows="10"></textarea>

<asp:CustomValidator id="descval" runat="server" ControlToValidate="txtdescription" EnableClientScript="true" Enabled="true" ValidateEmptyText="true" Display="Dynamic" ClientValidationFunction="ValidateTextDesc" Text="*" ErrorMessage="*"/> 

<asp:Button ID="buttonadd" runat="server" Text="Add text" OnClick="buttonadd_Click" />

我执行 CustomValidator 客户端函数的 javascript 代码是:

function ValidateTextDesc(source, args)
{
    var descriptiontext = document.getElementById("txtdescription");
 if ((descriptiontext.value.indexOf("<script") != -1) || (descriptiontext.value.length==0))
 {
     args.IsValid=false;
 }
 else
 {
    args.IsValid = true;
 }
 return args.IsValid;
}

我的问题是我必须单击两次提交按钮才能执行此客户端功能:

你知道为什么会出现这个问题吗?提前致谢。问候。何塞马。

4

2 回答 2

1

我在黑暗中的镜头是 FCKeditor 在您的验证运行之前没有将其内容传输到文本区域。

在开始验证之前,您需要调用 FCKEditor 的函数来手动传输内容。

它应该在某个地方FCKeditorAPI.GetInstance('FCKEditorFieldName').GetHTML()

于 2009-12-21T17:00:55.420 回答
1

对于 CKEditor (3.0.2) 的新版本,解决方案是使用:

CKEDITOR.instances.idoftextarea.getData();

最好的祝福。

于 2009-12-21T17:24:40.740 回答