2011-07-29 15 views
5

मैंने फ़ील्ड के साथ एक फॉर्म प्रस्तुत करने के लिए एक आलेख नियंत्रक बनाया: शीर्षक (टेक्स्ट) और सामग्री (टेक्स्टरेरा), और जब तक मैं टेम्पलेट में textarea फ़ील्ड में class = "tinymce" जोड़ता हूं तब तक सब कुछ ठीक से काम करता है। तो मुझे यह त्रुटि मिलती है: 'नाम =' फ़ॉर्म [सामग्री] 'के साथ एक अवैध फ़ॉर्म नियंत्रण फोकस करने योग्य नहीं है।' मैंने 'कक्षा' विशेषता जोड़ने के लिए प्रलेखन का पालन किया और संपादक ब्राउज़र में ठीक प्रस्तुत करता है, बस जब मैं फॉर्म सबमिट करता हूं तो मुझे त्रुटि मिलती है।Symfony2 TinymceBundle

कोई विचार यह क्या हो सकता है?

{{ form_errors(form) }} 

{{ form_widget(form.title) }} 
{{ form_widget(form.content, { 'attr': {'class': 'tinymce' }}) }} 

{{ form_rest(form) }} 

<input type="submit" /> 

+0

क्या आप अपना फॉर्म कोड पोस्ट कर सकते हैं? – Problematic

उत्तर

8

जाहिर है वहाँ विशेषता के बारे में क्रोम के साथ एक समस्या '= "true" आवश्यक' है। http://code.google.com/p/chromium/issues/detail?id=45640

मैं 'formnovalidate = "true"' विशेषता सबमिट बटन इनपुट क्षेत्र को जोड़ा गया और यह ठीक

1

त्रुटि होता है जब WYSIWYG अपने पाठ क्षेत्र छुपाता है लेकिन पाठ क्षेत्र आवश्यक फ़ील्ड के लिए सेट है काम करता है। जब आप ब्राउज़र की आवश्यक जांच को अक्षम करने के लिए फॉर्म बनाते हैं तो आप 'आवश्यक' => अपनी सामग्री टेक्स्टरेरा नियंत्रण पर गलत सेट कर सकते हैं।

$builder->add("content", "textarea", array('required' => false)); 
+0

हाँ, लेकिन मुझे यह आवश्यक फ़ील्ड होने की आवश्यकता है। मुझे यकीन है कि विशेषता के बिना फ़ील्ड की आवश्यकता है, लेकिन मुझे इस Google क्रोम बग को ठीक करने का एक आसान तरीका मिल गया है और अभी भी आवश्यक विशेषता है। फिर भी धन्यवाद :) – l3thal

2
tinyMCE.init({ 
    mode : "specific_textareas", 
    editor_selector : "mceEditor", 
    setup : function(ed) { 
      ed.onChange.add(function(ed, l) { 
        tinyMCE.activeEditor.getElement().value = tinyMCE.activeEditor.getContent(); 
      }); 
    } 
}); 
0

tinyMCE सामान्य रूप से onsubmit -Event दौरान छिपा पाठ क्षेत्र की सामग्री को अद्यतन करेगा। हालांकि, इस घटना को निकाल दिया नहीं गया है जब HTML5-सत्यापन का उपयोग किया जाता है और कोई भी इनपुट अमान्य है।

इसलिए जब तक आप HTML5-सत्यापन प्रारंभ होने से पहले टेक्स्टरेरा को अद्यतन करने के लिए लागू नहीं करते हैं, तब तक आपको सही ढंग से सत्यापित करने के लिए शीर्ष पर tinyMCE के साथ खाली और आवश्यक टेक्स्टरेरा नहीं मिलेगा।

मैं इस बग जो उम्मीद है कि जल्द ही मूल रेपो किसी भी समय में मिल जाएँगे के लिए एक समाधान का निर्माण: https://github.com/stfalcon/TinymceBundle/pull/19

2

मैं Musefan से सुझाव की कोशिश की, और यह केवल आंशिक रूप से काम किया, लेकिन यह मेरे प्रयोग मिला है।

यहां कुछ ऐसा है जो मेरे लिए काम करता है। फ़ायरफ़ॉक्स 10.0.1, आईई 9, और क्रोम 17 पर परीक्षण किया गया।

जहां मैं tinyMCE.activeEditor.getElement().value = 'test' सेट कर रहा हूं यह '' के अलावा कोई अन्य मूल्य हो सकता है। यकीन नहीं है कि यह सच क्यों है।

tinyMCE.init({ 
    mode : "specific_textareas", 
    editor_selector : "tinymce", 

    setup : function(ed) 
    { 
     // This is needed when the textarea is required for html5 
     ed.onInit.add(function(ed) 
     { 
         tinyMCE.activeEditor.getElement().value = 'test' 
     }); 
    }, 

}); 
0

उपरोक्त संग्रहालयों की प्रतिक्रिया पर बिल्डिंग।

मैं यहां आया क्योंकि मैं सरल फॉर्म, ट्विटर बूटस्ट्रैप और टिनिमस-रेल का उपयोग कर रहा हूं। यदि आप इस सेटअप को टिनिमस-रेल का उपयोग कर रहे हैं तो आपको अपनी tinymce.yml फ़ाइल का उत्तर देने वाली पंक्ति को संपादित करने की आवश्यकता है। आपकी अंतिम फ़ाइल इस तरह दिखनी चाहिए।

theme_advanced_toolbar_location: top 
theme_advanced_toolbar_align: left 
theme_advanced_statusbar_location: bottom 
theme_advanced_buttons3_add: 
    - tablecontrols 
    - fullscreen 
plugins: 
    - table 
    - fullscreen 
mode: 
    - specific_textareas