Validando o FCKeditor
A maioria das pessoas que escreve conteúdo para a internet não sabe as tags básicas do HTML como a de quebra de linha (<br />) ou a de espaço ( ).
Porém se não fossem os componentes de editor de texto que surgiram a pouco tempo, muitas dessas pessoas não escreveriam seus blogs ou textos de site, pois ficaria tudo desorganizado.
Um dos componentes deste tipo mais usado hoje em dia é o FCK editor (http://www.fckeditor.net). Porém por ser um componente desenvolvido básicamente para linguagens de script, seu lado compilado como user control para ASP.NET ainda prega algumas peças em quem está começando a conhece-lo e desenvolvendo algum sistema sem tempo para testes prévios.
Existe uma falha que já é conhecida porém pouco divulgada na internet brasileira, digo isso pois me deparei com o problema e não achei solução nacional, que é o problema da validação de vampo nulo.
No ASP.NET existem componentes prontos de validação e um deles é o RequiredFieldValidator que serve para checar se o campo está nulo. O problema descoberto é que usando o controle citado com o FCK editor a validação não funciona corretamente, apenas diferenciando campo nulo do não nulo quando se executa algum tipo função do próprio FCK.
Depois de muito pesquisar achei uma solução usando o CustomValidator e não mais o RequiredFieldValidator. Segue abaixo a solução:
function
ValidatorFCKEditor(sender, args)
{
var oEditor = FCKeditorAPI.__Instances["<%=FCKeditor1.ClientID%>"];
if (oEditor.GetHTML().length>0)
args.IsValid = true;
else
args.IsValid = false;
}
A função acima é uma função JavaScript que solicita o valor que está no FCK e checa se ele é vaziu ou não. Lembrando que aonde tem "FCKeditor1" deve ser alterado para o nome da sua instancia do FCK na sua página.
O controle de validação vai ficar da seguindo forma:
<asp:CustomValidator ID="CustomValidator1" runat="server"
ClientValidationFunction="ValidatorFCKEditor"
ErrorMessage="O campo texto é obrigatório!">*</asp:CustomValidator>
Dessa forma o seu FCK já terá validação para campo nulo.
Espero ter ajudado e qualquer dúvida estarei a disposição....
Abraços