2012-03-10 13 views
6

मैं परीक्षण करना चाहता हूं कि कुछ व्यावसायिक तर्क के हिस्से के रूप में कोई CKEditor (रिच टेक्स्ट) फ़ील्ड खाली है या नहीं। मैं अंतर्निहित सत्यापन सुविधाओं का उपयोग नहीं करना चाहता हूं।यदि कोई सीके संपादक फ़ील्ड खाली है तो मैं कैसे परीक्षण कर सकता हूं

यदि कोई सीके संपादक फ़ील्ड पहले टेक्स्ट था और फिर यह टेक्स्ट हटा दिया गया है तो अभी भी सामग्री है

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

मैं का उपयोग कर इस पाठ स्ट्रिंग के लिए एक संभाल प्राप्त कर सकते हैं:

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

वहाँ अगर CKEditor क्षेत्र दिखाई दे रहे पाठ की रिक्त है परीक्षण करने के लिए एक तरीका है?

उत्तर

2

तकनीकी रूप से, अगर यह क्या में आ ही दिखाई न्यू लाइन के बराबर है जैसा कि आपने अपने प्रश्न में दिखाया है, यह वास्तव में "खाली" नहीं है।

यथार्थ रूप से, आपको यह पता लगाने के लिए सामग्री मान को पार्स करना होगा कि क्या ऐसी सामग्री है जो टैग के अंदर या कुछ विशेष वर्ण जैसे   और इसी तरह से नहीं है।

मैं जेएस में ऐसा करने के लिए करता हूं, अगर मुझे पाठ की पूरी स्ट्रिंग लेना और इसे "<" के आधार पर एक सरणी में विभाजित करना है, तो सरणी के प्रत्येक तत्व को लेना और बाईं ओर एक टेक्स्ट निकालना एक ">", फिर ट्रिम करें। इससे मुझे किसी भी टैग के बाहर खाली स्ट्रिंग या टेक्स्ट की एक सरणी मिलती है। वहां से यह देखने के लिए सरणी में किसी भी तार के लिए पर्याप्त जांच है कि वे खाली नहीं हैं, और " " नहीं।

यह अधिक बोझिल हो सकता है तो कुछ पार्सर में निर्मित जो मुझे नहीं पता, लेकिन यह काफी विश्वसनीय और त्वरित है। (और फार्मूला भाषा में भी एक बहुत ही समान विधि का उपयोग किया जा सकता है)।

ssjs सूत्र आप कर सकते थे में:

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

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

जाहिर है यह सिर्फ शुद्ध जावास्क्रिप्ट में के रूप में आसानी से किया जा सकता है, लेकिन पुराने सूत्र भाषा मेरे सिर में इतना दीर्घस्थायी है, मैं बस से बाहर इस तरह से जाना चाहते हैं आदत।

** यह भी ध्यान दें: यदि आप किसी समृद्ध पाठ में छवि डालने के अलावा किसी अन्य चीज़ के अलावा बिल्कुल कुछ नहीं किया है तो आप कहीं भी < img> टैग की जांच कर सकते हैं।

+0

हाय एंड्रयू, मैं उम्मीद कर रहा था कि जैसा कि आपने कहा है, वहां कुछ और बनाया गया है लेकिन ऐसा नहीं लगता है। आपकी सहायता के लिए धन्यवाद. –

0

CKEditor अपने स्वयं के एपीआई है, मुझे लगता है यह सही तरीका है का उपयोग करें: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#getData

+1

ऐसा लगता है जैसे कि यह भी मार्कअप होगा "के लिए सर्वश्रेष्ठ उत्तर पाया डेटा कच्चे प्रारूप में होगा "। मैं आदर्श रूप से कुछ एसएसजेएस –

0

यह उपयोगी हो सकता है: http://xpagetips.blogspot.com/2011/10/be-careful-with-empty-ckeditor-rich.html

+0

हाय रसेल की तलाश में हूं, मैंने देखा था कि प्रश्न पोस्ट करने से पहले समाधान के लिए मेरी खोज में। यह वही है जो हमने देखा है लेकिन टेक्स्ट को हटा दिए जाने के बाद संपादक को खाली करने का तरीका यह पता नहीं चलता है कि यह कैसे हटाया गया है।शॉन –

0

चेक अगर CKEditor खाली

किसी भी ब्राउज़र var editor=CKEDITOR.instances.editorName.getData();

0

के लिए है मैं इस

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

यह एक और तरीका है: http://stackoverflow.com/a/26773960/2065611 –

संबंधित मुद्दे

 संबंधित मुद्दे