您应该详细说明如何使用 AJAX 响应,以下内容在带有 Prototype.js v 1.7.1 的 IE 6 中运行良好。我使用 DOM 和 innerHTML 来模拟您可能对 AJAX 响应所做的事情:
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
document.observe('change', function(e, el) {
if (el = e.findElement('textarea')) {
alert(el.value);
}
});
function addTextarea(el){
var ta = document.createElement('textarea');
ta.name = 'ta2';
el.parentNode.insertBefore(ta, el.nextSibling);
}
function addTextarea2(){
document.getElementById('s0').innerHTML = '<textarea></textarea>';
}
</script>
<textarea name="answer8158" id="answer8158"></textarea><br>
<button onclick="addTextarea(this);">Add using DOM</button><br>
<button onclick="addTextarea2();">Add using innerHTML</button><span id="s0"></span>
如果您以编程方式更改值并期望触发更改事件,那是完全不同的。顺便说一句,我会将观察者写为:
document.observe('change', function(e) {
var el = e.findElement('textarea');
if (el) {
alert(el.value);
}
});
这只是几个额外的字符,而且更清晰。