我有一個DropDownList
其中onChange
設置TextArea
這是我的CKEditor
控件的內容。CKEditor SetData JQuery
當編輯器在不使用我運行這段代碼爲onChange
:
$(".setBody").change(function() {
//
var className = "." + $(this).attr("sExternalId");
var text = $(this).val();
//
$(className).val(text);
});
我不是非常有經驗的JavaScript/jQuery和我只是無法弄清楚如何執行相同使用CKEditor的setData()
函數。這是我試過的:
$(".setCKBody").change(function() {
//
var className = "." + $(this).attr("sExternalId");
var text = $(this).val();
//
var editor = $(className).ckeditorGet();
editor.setData(text, function() {
alert("The content was set");
});
});
$(".setCKBody").change(function() {
//
var className = "." + $(this).attr("sExternalId");
var text = $(this).val();
//
CKEDITOR.instances[$(className)].setData(text, function() {
alert("The content was set");
});
});
我關閉了嗎?我認爲主要限制之一是我有多個編輯器控件具有相同的ID和名稱,只有類可以區分它們,這就是爲什麼我使用JQuery。我試過通過一些在線的例子,但我不知道如何將它們應用到這種情況下 - 這可能是我通過那裏的缺乏經驗...
謝謝。
編輯
這是怎麼了我的textarea
和dropdownlist
出現在查看源代碼:
<textarea class="editArea M3" cols="20" id="Body" name="Body" rows="5">
*some text*
</textarea>
<select class="setCKBody" id="Templates" name="Templates" sExternalId="M3">
<option value="some value">Option 1</option>
<option value="some value">Option 2</option>
</select>
的onChange
事件上述觸發從dropDownList
變化,並通過「sExternalId掛textArea
「屬性。 我意識到我在上面的示例中使用了「id」作爲屬性名稱,所以我改變了這一點。
我用它來設置它作爲一個CKEditor的控制:
<script>CKEDITOR.replaceAll('editArea');</script>
I 2至6 textarea
控件之間具有相同的頁面,用剃刀這樣創建於:
@Html.TextAreaFor(m => m.Body, new { @class = "span12 editArea " + Model.ExternalId, rows = 5 })
他們包含在如下使用的局部視圖中:
@foreach (MailTemplateModel oTemplate in Model.Templates)
{
@Html.Partial("_MailPartial", oTemplate)
}
這就是爲什麼每個文本區域的「正文」設置爲id
和name
。我認爲這是問題的核心,因爲存在多個具有相同ID和名稱的元素,CKEditor無法選擇正確的元素。我試圖做CKEDITOR.instances [「className」],但這是未定義的,而做CKEDITOR.instances.Body確實工作,但只會返回相同的值。
我打算重構頁面的創建方式以避免這種情況,希望我的問題可以同時解決。
感謝您的幫助,我已經編輯我原來的問題給予更多的信息。我認爲我用部分視圖創建頁面的方式不正確,並且有多個具有相同ID和名稱的CKEditor控件只是令人困惑的事情。 –