2010-04-13 22 views
10

मुझे TinyMCE संपादक के साथ समस्या है। मेरे पास कुछ टेक्स्ट फ़ील्ड और टेक्स्टरेरा (tinymce), और सक्षम क्लाइंट सत्यापन के साथ फ़ॉर्म है। जब मैं सभी टेक्स्ट फ़ील्ड पर सहेजें बटन सत्यापन अवसरों पर क्लिक करता हूं, लेकिन tinymce सामग्री को सत्यापित करने में 2 क्लिक लगते हैं। इसके अलावा, सत्यापन केवल तभी संदेश दिखाता है जब फ़ील्ड खाली हो, या यदि स्थिति संतुष्ट नहीं होती है (केवल परीक्षण कारणों के लिए, अधिकतम 5 वर्ण दर्ज किए जा सकते हैं), लेकिन जब मैं सही संख्या में वर्ण दर्ज करता हूं (5 से कम), त्रुटि संदेश रहता है।TinyMCE क्लाइंट सत्यापन समस्या

यहाँ कोड नमूना है:

<%Html.EnableClientValidation(); %> 
    <%= Html.ValidationSummary(true, "Na stranici postoje greške.", new { @style = "color: red;" })%></p> 
    <% using (Html.BeginForm("Create", "Article", FormMethod.Post, new { enctype = "multipart/form-data" })) 
     { %> 
    <fieldset> 
     <legend>Podaci za Aranžman</legend> 
      <label class="EditLabel" for="name"> 
       Opis</label> 
      <br /> 
      <%= Html.TextAreaFor(Model => Model.Description, new { style = "width: 100%; height: 350px;", @class = "tinymce" })%> 
      <%= Html.ValidationMessageFor(Model => Model.Description, "", new { @style = "color: red;" })%> 
     <p> 
      <input type="submit" value="Sačuvaj aranžman" /> 
     </p> 
    </fieldset> 
    <% } %> 

और संपत्ति

[Required(ErrorMessage = "Unesi opis")] 
    [StringLength(5, ErrorMessage = "Opis mora imati manje od 5 znakova")] 
    public string Description { get; set; } 

कोई सुझाव ???

उत्तर

26

इसका कारण यह है कि सबसे समृद्ध पाठ संपादक (छोटे mce सहित) टेक्स्ट क्षेत्र का उपयोग नहीं करते हैं। इसके बजाय इसमें अपना स्वयं का इनपुट होता है और फ़ॉर्म सबमिट होने पर टेक्स्ट पर केवल प्रतियां होती हैं। तो जब आप संपादक में कुछ टाइप करते हैं तो आप जिस क्षेत्र को मान्य कर रहे हैं वह वास्तव में परिवर्तित नहीं होता है।

आपको इसके लिए एक काम करना होगा जो सबमिट बटन पर क्लिक करते समय संपादक से टेक्स्ट को टेक्स्ट क्षेत्र में कॉपी करता है। यह इस तरह किया जा सकता है:

$('#mySubmitButton').click(function() { 
    tinyMCE.triggerSave(); 
}); 
+1

हैलो मैटिस, धन्यवाद उत्तर के लिए, हालांकि मैं इस समाधान से पहले भी प्रश्न पोस्ट किया है, और यह क्लिक समस्या के लिए काम किया। लेकिन जब भी मैं सही संख्या में वर्ण (पांच से कम) दर्ज करता हूं तब भी मेरा त्रुटि संदेश दिखाई देता है .और मुझे पता चला कि क्यों, मैं पूरी तरह से HTML टैग्स के बारे में भूल गया था जो संपादक द्वारा जोड़े गए थे। यहां तक ​​कि अगर मैंने केवल एक अक्षर टाइप किया है तो भी अतिरिक्त टैग के कारण मेरी हालत पूरी नहीं हुई थी। बेवकूफ गलती :) फिर भी आपका जवाब सही है, धन्यवाद –

+0

+1 बहुत उपयोगी धन्यवाद। एक ही मुद्दा था। – TheCarver

1

आप एक ही समस्या है, तो TinyMCE की तरह आवश्यक सत्यापन फार्म पर आग नहीं है समय प्रस्तुत मैं इस तरह एक ही समाधान है, मुझे पता है यह उचित तरीके से नहीं है, लेकिन यह ठीक काम करते हैं कोड नीचे अपने आवेदन में tynymce jQuery पैकेज स्थापित

इस मॉडल

[Required(ErrorMessage = "Please enter About Company")] 
[Display(Name = "About Company : ")] 
[UIHint("tinymce_jquery_full"), AllowHtml] 
public string txtAboutCompany { get; set; } 

अब cshtml फ़ाइल में हमारे विचार से मतलब है

012,
<div class="divclass"> 
    @Html.LabelFor(model => model.txtAboutCompany, new { @class = "required" }) 
    @Html.EditorFor(model => model.txtAboutCompany) 
    <span class="field-validation-error" id="AC" style="margin:9px 0 0 157px;"></span> 
</div> 

और पर बटन क्लिक करें घटना प्रस्तुत इस jQuery

$("#BusinessProfile").click(function() { 
     var aboutC = $("#txtAboutCompany").val() 
     var pinfo = $("#txtProductinfo").val(); 
     if (aboutC == "" && pinfo == "") { 
      $("#AC").append("").val("").html("Please enter about company") 
      $("#PI").append("").val("").html("Please enter product information") 
      $("#bpform").valid(); 
      return false; 
     } else if (aboutC == "") { 
      $("#PI").append("").val("").html("") 
      $("#AC").append("").val("").html("Please enter about company") 
      $("#txtAboutCompany").focus(); 
      $("#bpform").valid(); 
      return false; 
     } else if (pinfo == "") { 
      $("#AC").append("").val("").html("") 
      $("#PI").append("").val("").html("Please enter product information") 
      $("#txtProductinfo").focus(); 
      $("#bpform").valid(); 
      return false; 
     } 
     else { 
      $("#AC").append("").val("").html(""); 
      $("#PI").append("").val("").html(""); 
      //return true; 
      $("#bpform").validate(); 
     } 
    }); 

जाँच के लिए इस कोड का प्रयास करें,

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