JS要操作textarea控件,设置或获取文域的内容,可以通过textarea的innerHTML和/或value属性来操作。
但是在不同的浏览器中这两个属性是有区别的。以下假设变量textarea为一个textarea控件。
在非IE浏览器(本文指Firefox/Chrome/Opera/Safari等浏览器,下同)中,通过textarea.value='xxxx'改变textarea的值后,textarea.innerHTML的值不会改变,同理,通过textarea.innerHTML改变的值也不会影响t.value的值,也就是说textarea.value和textarea.innerHTML是两个不通的属性,属性值也互不相同相通。
在IE浏览器中,无论是通过textarea.value还是textarea.innerHTML都会同时改变textarea.value和textarea.innerHTML这两个属性的值,并且他们始终保持一致。
在非IE浏览器中,用户输入或修改textarea控件中的内容后,使用textarea.value才能获取到最终正确的值,使用textarea.innerHTML获取不到,而IE浏览器中两个属性都都可以。
试看以下代码:
<textarea id="t">初始值</textarea>
<a href="javascript:;">点击测试</a>
<script type="text/javascript">
function test(){
var textarea=document.getElementById('t');
alert('value:'+textarea.value);
alert('innerHTML:'+textarea.innerHTML);
t.value='333333';
alert('value设置为333333');
alert('value:'+textarea.value);
alert('innerHTML:'+textarea.innerHTML);
t.innerHTML='666666';
alert('innerHTML设置为666666');
alert('value:'+textarea.value);
alert('innerHTML:'+textarea.innerHTML);
}
onload=function(){
test();
alert('请手动修改一次输入框的值,然后点击测试。');
}
</script>
|
|