在使用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()修复了此问题。更好的解决方案仍然受到欢迎。
你应该使用 value textarea DOM对象的属性:
value
<a href="#" onclick="$('note').value = 'test note'; return false;">copy note</a>