Javascript无法在Textarea中设置值

时间:2014-07-01 11:51:55

标签: javascript html asp.net-mvc

我参考下面的例子,

http://jsfiddle.net/rHDh9/

例如,如果单击textarea内的任何位置,如果单击按钮,它将获得按钮值并设置为单击鼠标的textarea。

我的问题:

如果我在textarea下面使用,当我点击按钮时,输入值设置到鼠标点击的textarea。

<div id="100000000">

<input id="insertPattern" type="button" value="insert pattern" />
<textarea class="ckeditor" id="aboutme">insert some text into this string</textarea>

 </div>

但是如果我在Html.TextArea下使用,如果我点击按钮,输入值永远不会设置为鼠标点击的Html.Textarea。

<div id="100000000">

    <input id="insertPattern" type="button" value="insert pattern" />
    @Html.TextArea("editor", new { @class = "ckeditor", @id = "aboutme" })

</div>

为什么它适用于textarea而不适用于按钮点击时的Html.TextArea?

我到底错过了什么?

任何帮助将不胜感激。

感谢。

3 个答案:

答案 0 :(得分:1)

在构造TextArea(或任何表单元素)时,您不应该使用@id。只需使用id = "aboutme"

答案 1 :(得分:1)

如果您使用的是CKEDITOR,则必须像这样设置文本区域的值。

CKEDITOR.instances['#aboutme'].setData('insert some text into this string');

答案 2 :(得分:0)

编辑器在显示动画的容器内(模态,动画......)时出现此问题

所以,我解决了这样的问题:

var _objEditor = null;
function show_editor_control(){
    $("#main_container").show('slide', {direction: 'left'}, 300);
    setTimeout(initialize_editor,300);
}

function initialize_editor(){
    if(_objEditor!=null) {_objEditor.destroy();};
    CKEDITOR.replace('textarea_id');
    _objEditor =CKEDITOR.instances["textarea_id"];
}

现在,它有效......