У меня есть проблема с редактором TinyMCE. Я имею форму с немногими текстовыми полями и текстовой областью (tinymce), и включил клиентскую проверку. То, когда я нажимаю, сохраняют проверку кнопки, происходит на всех текстовых полях, но требуется 2 щелчка для проверки tinymce содержания. Кроме того, шоу проверки обмениваются сообщениями только, когда поле пусто, или если условие не удовлетворено (только по тестовым причинам, макс. 5 символов могут быть введены), но когда я ввожу правильный номер символов (менее затем 5), сообщение об ошибке остается.
Вот пример кода:
<%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; }
Какие-либо предложения???
Причина этого в том, что большинство редакторов форматированного текста (включая tiny mce) не используют текстовую область. Вместо этого он имеет собственный ввод и копирует текст только при отправке формы. Таким образом, поле, которое вы проверяете, на самом деле не меняется, когда вы вводите что-то в редакторе.
Что вам нужно сделать, так это создать обходной путь, который копирует текст из редактора в текстовую область, когда вы нажимаете кнопку отправки. Это можно сделать так:
$('#mySubmitButton').click(function() {
tinyMCE.triggerSave();
});