У меня немного странная проблема с FCKEditor в моем проекте MVC.
По сути, у меня есть вид, который отображает частичное представление, содержащее мой FCKEditor (javascript, html и любые другие биты, чтобы сделать мой элемент управления повторно используемым через мое приложение)
Я звоню FCKEditor, выполняя следующее:
<script src="<%= Url.Content("~/Scripts/fckeditor/fckeditor.js") %>" type="text/javascript" ></script>
<script type="text/javascript">
window.onload = function () {
var sBasePath = '<%= Url.Content("~/Scripts/fckeditor/") %>';
var oFCKeditor = new FCKeditor('FckEditor1');
oFCKeditor.BasePath = sBasePath;
oFCKeditor.ReplaceTextarea();
}
</script>
Для проверки моей формы я использую jQuery.Validate со следующим кодом:
//FORM VALIDATION
$("#NewPageForm").validate({
errorContainer: "#errorblock-div1, #errorblock-div2",
errorLabelContainer: "#errorblock-div2 ul",
wrapper: "li",
rules: {
titleTxt: "required",
FckEditor1: "required"
},
messages: {
titleTxt: "You must enter a page title.",
FckEditor1: "You must enter at least some content."
},
submitHandler: function (form) {
form.submit();
}
});
Локально, при отладке моего проекта, это работает абсолютно нормально и выдает ошибку пользователю, когда они оставляют редактор пустым.
Однако, когда я публикую приложение и запускаю его с сервера, всякий раз, когда в редакторе есть содержимое, форма не будет проверяться, сообщая мне, что мой элемент управления FCKEditor пуст, когда его явно нет.
Если я заберу валидацию и отправлю форму со всеми соответствующими полями, заполненными, коллекция collection("FckEditor1")
также будет пустой, но, опять же, выполнение этого локально работает впервые, каждый раз.
У меня был поиск вокруг, и, похоже, происходит то, что моя текстовая область <%= Html.TextArea("FckEditor1", New With {.name = "FckEditor1", .class = "required"})%>
не заполняется содержимым, введенным в FCKEditor, даже если это поле, с которым связан FCK.
Проблема существует во всех браузерах, которые я пробовал (IE8 и FF).
Не уверен, стоит ли также отметить, что FCK по-прежнему хорошо отрисовывается?
Я не совсем уверен, что это проблема с моим кодом, так как он отлично работает локально. Есть ли что-то, что мне нужно настроить на стороне сервера или в файле web.config, что может быть причиной этого?
Кто-нибудь еще сталкивался с этим или есть какие-либо идеи относительно того, как решить проблему?
EDIT
Я думаю, что мог бы быть там с исправлением.
Я добавил следующее:
$('#publishBtn').button().click(function () {
if (typeof (FCKeditorAPI) == "object") {
FCKeditorAPI.GetInstance("FckEditor1").UpdateLinkedField();
} else {
alert('this is not an object!');
}
if ($("#FckEditor1").val() == "") {
alert("FCKEditor is empty");
} else {
$("#NewPageForm").submit();
}
});
Хотя теперь я отправляюсь на пустую страницу при отправке формы, хотя в моем контроллере, похоже, нет проблемы - по крайней мере, я так не думаю, что если бы там была проблема, это бы помогло то же самое на моей локальной машине.