2012-01-05 8 views
9

मुझे एक फॉर्म को सत्यापित करने की आवश्यकता है। इस फ़ॉर्म में कुछ ड्रॉपडाउन और टिनीएमसीई संपादक हैं, मैं रिक्त होने पर प्रत्येक फ़ील्ड के बाद स्ट्रिंग "आवश्यक" स्ट्रिंग को जोड़कर इस फॉर्म को मान्य कर रहा हूं, हालांकि अगर मैं खाली हूं, तो मैं tinyMCE संपादक को सत्यापित करने में असमर्थ हूं, मैंनेमैं एक छोटे से एमसीई संपादक को कैसे सत्यापित करूं, यदि यह इसके आगे एक स्ट्रिंग जोड़कर खाली है?

जैसे कुछ की कोशिश की
tinyMCE.get('tinyedotor').getContent(); 

लेकिन कोई भाग्य नहीं।

यहाँ मेरी fiddle

उत्तर

12

getContent() ठीक काम करना चाहिए। आपके फीडल में संपादक मान के लिए फॉर्म सत्यापन कोड नहीं है, जो यहां काफी महत्वपूर्ण है। इस प्रयास करें:

var editorContent = tinyMCE.get('tinyeditor').getContent(); 
if (editorContent == '') 
{ 
    // Editor empty 
} 
else 
{ 
    // Editor contains a value 
} 

Forked fiddle

यह भी ध्यान रखें कि आप अपने select ड्रॉप-डाउन के लिए कई id की घोषणा की है।

संपादित करें: आप getContainer() विधि के साथ संपादक कंटेनर के id प्राप्त कर सकते हैं: tinyMCE.get('tinyeditor').getContainer()। संपादक के बाद एक त्रुटि संदेश सम्मिलित करना तो कुछ इस तरह होगा:

$('<span class="error">Editor empty</span>').insertAfter($(tinyMCE.get('tinyeditor').getContainer())); 

लेकिन यह, एक नया span हर बार उपयोगकर्ता सबमिट बटन पर क्लिक करता है पैदा करेगा तो आप शायद एक त्रुटि संदेश से चर्चा करना चाहेंगे एक अद्वितीय id के साथ कंटेनर और यह जांचने से पहले कंटेनर पहले से मौजूद है या नहीं।

संपादित करें: Updated fiddle

+0

@ विक्टर: बढ़िया, मैं ऐसा कर सकता हूं लेकिन मेरी समस्या यह स्ट्रिंग tinyMCE के बगल में डाल रही है। मुझे नहीं पता कि मैं tinymCe की कक्षा/आईडी कैसे प्राप्त करूं, इसलिए मैं $ ("। Errormrssage") की तरह कुछ कर सकता था। AppendTo ('tinyMCEEditor' का वर्ग/आईडी); – Mike

+0

@ माइक: जोड़ा गया कोड देखें। – Viktor

+0

@ विक्टर: मैंने यह कोड जोड़ा लेकिन ऐसा लगता है कि यहां संदेश को हटाने के लिए कुछ और आवश्यक है fiddle http://jsfiddle.net/bvNMc/13/ – Mike

0

getContent() जाने का रास्ता है। आप बस tinyMCE.activeEditor ऑब्जेक्ट का उपयोग कर सकते हैं और उस पर getContent() पर कॉल कर सकते हैं या आईडी द्वारा संपादक उदाहरण प्राप्त कर सकते हैं, जैसा कि आप कर रहे हैं।

ऐसा लगता है कि आपको अपनी आईडी में एक टाइपो मिल गया है, जो शायद आपकी समस्या का कारण बन रहा है।

tinyMCE.get('tinyedotor').getContent(); 

शायद होना चाहिए:

tinyMCE.get('tinyeditor').getContent(); 
+0

यह सिर्फ प्रश्न में टाइपो था, लेकिन मेरा कोड सही है, क्या आपने पहेली – Mike

+0

हाँ की जांच की, हाँ, मुझे कोई 'getContent' कॉल नहीं मिला, केवल एक' सेट सामग्री 'आमंत्रण। क्या मैं सही कोड देख रहा हूं? साथ ही, यह वर्तमान में एक त्रुटि फेंक रहा है: 'अनकॉट सिंटेक्स त्रुटि: अप्रत्याशित पहचानकर्ता' – buley

1

आप जो चाहते हैं आसानी से किया जा सकता है। मेरे समाधान के साथ वह link to a fiddle है।

+0

संपादक संदेश खाली tinyMCE संपादक की शीर्ष पंक्ति के साथ होना चाहिए, अभी यह केंद्र में है। मैं स्थिति पूर्ण और शीर्ष और बाएं आयामों का उपयोग कर सकता हूं, लेकिन इससे परेशान होगा, क्योंकि मेरे पृष्ठ में 3 tinymce संपादक हैं और केवल कुछ तर्क के आधार पर दिखाए जाते हैं। क्या हमारे पास tinyMCE बॉक्स के साथ संरेखण में पहली पंक्ति पर यह संपादक संदेश हो सकता है। – Mike

+0

@ माइक: त्रुटि संदेश वाले तालिका कक्ष के लिए तालिका कक्ष सामग्री संरेखित करें: ''। – Viktor

+0

@ विकटर: लेकिन मेरे पास एक div लेआउट है। – Mike

7

आप इस जांच करने के लिए करता है, तो सामग्री पार्स एचटीएमएल बिना रिक्त है कर सकते हैं:

var content = tinymce.get('tinymceEditor').getContent({format: 'text'}); 
if($.trim(content) == '') 
{ 
    // editor is empty ... 
} 
+0

बहुत उपयोगी, क्योंकि अगर कुछ सफेद रिक्त स्थान हैं, तो HTML प्रारूप में यह अब खाली के रूप में नहीं गिना जाता है। – Memochipan

+0

यह अधिक उपयोगी होगा, जब आप प्रारूप फ़िल्टरिंग '{format:' text '}' को हटाते हैं, क्योंकि कभी-कभी उपयोगकर्ता कुछ भी नहीं लिखता है लेकिन फ़ाइल/छवि डालता है। –

1

getcontent (का उपयोग करते हुए), उचित तरीका है, लेकिन उपयोगकर्ता अंतरिक्ष में प्रवेश करती है क्या हुआ अगर !! ?? ('.bgcolor') 'tinyeditor' के आसपास लेकिन एक div कुछ भी नहीं जब सत्यापन होता है लाल बॉर्डर है:

var content = tinyMCE.get('tinyeditor').getContent(), patt; 

      //Here goes the RegEx 
      patt = /^<p>(&nbsp;\s)+(&nbsp;)+<\/p>$/g; 

      if (content == '' || patt.test(content)) { 
       $('.bgcolor').css("border", "1px solid Red") 
       return false; 
      } 
      else { 
       $('.bgcolor').removeAttr("style") 
       return true; 
      } 

नोट -
यहाँ regex के साथ पूरा समाधान है।

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