2012-03-10 5 views
6

Voglio verificare se un campo CKEditor (Rich Text) è vuoto come parte di alcune logiche di business. Non voglio usare le funzioni di convalida incorporate.Come posso verificare se un campo dell'editor CK è vuoto

Se un campo dell'editor CK ha già avuto testo e quindi questo testo viene eliminato, vi è ancora del contenuto, ad es.

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

posso ottenere un handle a questa stringa di testo usando:

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

C'è un modo per verificare se il campo è vuoto CKEditor di testo visibile?

risposta

2

Tecnicamente parlando, se ha ciò che equivale a aa unico a capo visibile come hai mostrato nella tua domanda, non è veramente "vuoto".

Realisticamente, dovrai analizzare il valore del contenuto per scoprire se ci sono contenuti che non si trovano all'interno di tag o pochi caratteri speciali come   e così via.

Tendo a farlo in js, se necessario, prendendo l'intera stringa di testo e suddividendola in un array basato su "<" quindi prendendo ciascun elemento della matrice e rimuovendo un testo a sinistra di un ">", quindi tagliare. Questo mi lascia una serie di stringhe vuote o di testo che è al di fuori di qualsiasi tag. Da lì è abbastanza semplice controllare se ci sono delle stringhe nell'array per vedere se non sono vuote, e non " ".

Questo può essere più ingombrante di un parser integrato che non conosco, ma è abbastanza affidabile e veloce. (e un metodo molto simile può essere usato anche nel linguaggio delle formule).

Nella formula SSJS si potrebbe:

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

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

Ovviamente questo potrebbe essere fatto altrettanto facilmente in puro JavaScript, ma il vecchio linguaggio delle formule è così radicata nella mia testa, mi piacerebbe andare in questo modo appena fuori abitudine.

** Nota: è possibile cercare un tag < img> da qualche parte nel caso in cui qualcuno non abbia fatto assolutamente nient'altro che inserire un'immagine nel testo RTF.

+0

Ciao Andrew, speravo che ci sarebbe stato qualcosa di più "integrato" come hai detto, ma non sembra. Grazie per l'aiuto. –

0

Controllare se CKEditor è vuoto

Per qualsiasi browser var editor=CKEDITOR.instances.editorName.getData();

0

ho trovato risposta migliore per questo

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

Questo è un altro modo: http://stackoverflow.com/a/26773960/2065611 –