2012-03-10 46 views
6

Quiero probar si un campo CKEditor (texto enriquecido) está vacío como parte de alguna lógica comercial. No quiero usar las características de validación integradas.¿Cómo puedo comprobar si un campo Editor de CK está vacío?

Si un campo CK Editor ha tenido previamente texto y luego este texto se elimina, todavía hay contenido, p.

<p dir="ltr"> 
&nbsp;</p> 

puedo obtener un identificador para esta cadena de texto usando:

dataVar = xspdoc.getDocument().getMIMEEntity(dataNamevar).getContentAsText(); 

¿Hay una manera de probar si el campo está vacío CKEditor de texto visible?

Respuesta

2

Técnicamente hablando, si tiene lo que equivale a AA nueva línea visible solo en como lo ha demostrado en su pregunta, en realidad no está "vacío".

Realísticamente, tendrá que analizar el valor del contenido para saber si hay contenido que no esté dentro de las etiquetas o en los pocos caracteres especiales como   y así sucesivamente.

Tiendo a hacer esto en js, si es necesario, tomando toda la cadena de texto y dividiéndola en una matriz basada en "<" y luego tomando cada elemento de la matriz y eliminando un texto a la izquierda de un ">", luego recorte. Eso me deja una serie de cadenas vacías o texto que está fuera de las etiquetas. Desde allí, es bastante fácil verificar si hay alguna cadena en la matriz para ver si no están vacías, y no " ".

Esto puede ser más engorroso que algunos analizadores integrados que no conozco, pero es bastante confiable y rápido. (y también se puede usar un método muy similar en el lenguaje de fórmulas).

En la fórmula SSJS usted podría:

var checkString = @trim(@replacesubstring(@implode(@trim (@right(@explode(sourceHTMLstring , "<") , ">")) , " "), "&nbsp;" , "")); 

if(checkstring == "") { 
     // *** You have no content 
} else { 
     // *** you have content 
} 

Obviamente esto se podría hacer con la misma facilidad en javascript puro, pero el viejo lenguaje de fórmulas está tan arraigado en mi cabeza, me gustaría ir de esta manera fuera de su hábito.

** También tenga en cuenta: Es posible que desee buscar una etiqueta < img> allí en algún lugar en caso de que alguien haya hecho absolutamente nada más que poner una imagen en el texto enriquecido.

+0

Hola Andrew, esperaba que hubiese habido algo más "integrado" como dijiste, pero parece que no. Gracias por tu ayuda. –

0

Comprobar si CKEditor está vacía

Para cualquier navegador var editor=CKEDITOR.instances.editorName.getData();

0

he encontrado mejor respuesta para este

function validateCKEDITORforBlank(ckData) 
{ 
    ckData = ckData.replace(/<[^>]*>|\s/g, ''); 
    var vArray = new Array(); 
    vArray = ckData.split("&nbsp;"); 
    var vFlag = 0; 
    for(var i=0;i<vArray.length;i++) 
    { 
     if(vArray[i] == '' || vArray[i] == "") 
     { 
      continue; 
     } 
     else 
     { 
      vFlag = 1; 
      break; 
     } 
    } 
    if(vFlag == 0) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

Link

+0

Esta es otra forma: http://stackoverflow.com/a/26773960/2065611 –

Cuestiones relacionadas