使用RequiredFieldValidator控件验证FCKeditor是否填写内容的时候会遇到一个问题
填写了内容之后第一次提交还会提示没有填写内容这是由于FCKEditor的编辑框采用的是Iframe每次提交的时候首先要将Iframe的内容复制到文本框内再提交但是验证控件验证的是实际的文本框在没触发提交时这个内容文本框的内容实际上是空的
换上自定义验证控件CustomValidator
设置ClientValidationFunction=checkFckeditorContent;
利用FCKeditor提供的Javascript API可以解决这个问题
JavaScript_API#Events>_x/Developers_Guide/JavaScript_API#Events
在页面上加入以下脚本
<script type=text/javascript>
//<![CDATA[
var fckeditorContentLength = ;
function checkFckeditorContent(source arguments)
{
argumentsIsValid = (fckeditorContentLength > );
}
function FCKeditor_OnComplete(editorInstance)
{
editorInstanceEventsAttachEvent(OnBlur FCKeditor_OnBlur); //附加失去焦点的事件
}
function FCKeditor_OnBlur(editorInstance)
{
fckeditorContentLength = editorInstanceGetXHTML(true)length;
//在FCKeditor失去焦点时如果内容不为空则隐藏验证提示
if(fckeditorContentLength > ){
documentgetElementById(<%= this自定义验证控件ClientID %>)styledisplay = none;
}
}
//]]>
</script>
问题到此就解决了