有时在使用FCK的,需要对它做非空的验证。以前一直是使用RequiredFieldValidator控件来完成的。但是会有一个小小的bug,在提交的时候第一次不能通过验证。需要提交两次才能通过。解决的办法是禁用RequiredFieldValidator控件的客户端脚本验证功能。只在服务器端验证。
1
<
asp:RequiredFieldValidator
ID
="RequiredFieldValidator16"
runat
="server"
ControlToValidate
="fck"
Display
="Dynamic"
EnableClientScript
="False"
ErrorMessage
="还没有填写内容"
></
asp:RequiredFieldValidator
>
今天在查找资料的时候,偶然间看到一个新的解决方法。 利用FCK提供的方法使用CustomValidator控件,就可以解决上述的bug。在客户端使用js做FCK的非空验证。
代码
//
Fck非空验证
var oEditer;
function FckValidate(source, arguments)
{
var value = oEditer.GetXHTML( true );
if ($.trim(value) == '' )
{
arguments.IsValid = false ;
}
else
{
arguments.IsValid = true ;
}
}
function FCKeditor_OnComplete(editorInstance)
{
oEditer = editorInstance;
}
var oEditer;
function FckValidate(source, arguments)
{
var value = oEditer.GetXHTML( true );
if ($.trim(value) == '' )
{
arguments.IsValid = false ;
}
else
{
arguments.IsValid = true ;
}
}
function FCKeditor_OnComplete(editorInstance)
{
oEditer = editorInstance;
}
代码
<
asp:CustomValidator
ID
="CustomValidator1"
runat
="server"
Display
="Dynamic"
ErrorMessage
="没有填写"
ClientValidationFunction
="validTitle"
OnServerValidate
="ValidFck"
ControlToValidate
="fck"
></
asp:CustomValidator
>