代码之家  ›  专栏  ›  技术社区  ›  Thilo

用javascript替换textarea内容(原型)

  •  0
  • Thilo  · 技术社区  · 14 年前

    在使用prototype的Rails应用程序中,我的视图中有以下(简化的)代码(编辑:替换为实际的HTML输出):

    <textarea cols="34" id="note" name="note" rows="5"></textarea>
    <a href="#" onclick="$('note').update('test note'); return false;">copy note</a>
    

    这在一个新的页面访问中很好地工作,并且可以达到预期的效果:单击链接时在文本区域中插入“测试注释”。

    但是,如果我随后删除或编辑文本区域字段中的文本并再次单击该链接,则不会再次替换该文本。这在Safari和Firefox中都会发生。没有发生javascript错误。

    奇怪的是,Firebug确实在随后的点击中显示了标签之间的文本。

    我错过了什么?

    编辑:

    我发现这个: http://scott-tabar-safari.blogspot.com/2008/01/prototype-v16-ajaxupdater-and-textarea.html . 添加$('formid')。reset()修复了此问题。更好的解决方案仍然受到欢迎。

    1 回复  |  直到 14 年前
        1
  •  1
  •   PleaseStand    14 年前

    你应该使用 value textarea DOM对象的属性:

    <a href="#" onclick="$('note').value = 'test note'; return false;">copy note</a>