Javascript TextArea备份到它';s的上一个值本身,并举例说明

Javascript TextArea备份到它';s的上一个值本身,并举例说明,javascript,html,textarea,Javascript,Html,Textarea,由于textarea的一个奇怪行为,我几乎失去了理智,甚至很难为演示复制它,但幸运的是,使用outerHTML属性也会触发它 在示例中:首先单击change,然后单击test按钮,您将看到文本区域恢复到其原始值。如果在单击“测试”之前检查它,您会发现旧值一直存在,为什么会发生这种情况以及如何解决它? 多谢各位 函数changevalue(){ var text=document.getElementById(“text”); text.value=“新文本”; } 功能测试(){ var te

由于textarea的一个奇怪行为,我几乎失去了理智,甚至很难为演示复制它,但幸运的是,使用
outerHTML
属性也会触发它

在示例中:首先单击change,然后单击test按钮,您将看到文本区域恢复到其原始值。如果在单击“测试”之前检查它,您会发现旧值一直存在,为什么会发生这种情况以及如何解决它? 多谢各位

函数changevalue(){
var text=document.getElementById(“text”);
text.value=“新文本”;
}
功能测试(){
var text=document.getElementById(“text”);
document.body.innerHTML++=“br>”+(text.outerHTML);
document.body.innerHTML+=“
”+(text.value); }

旧文本
改变
测试
表单控件具有一个在源HTML中指定的初始(默认)值。重置表单时,该值将始终还原为defualtValue

innerHTML和outerHTML属性反映的是defaultValue,而不是当前值(在中可能有一些内容涵盖了它)

在下面的示例中,您可以将文本区域的值更改为您喜欢的任何值,defaultValue将保持不变

您可以通过为其指定新值来更改defaultValue。因此,如果使用outerHTML复制表单控件,并希望defaultValue与要复制的元素不同,则需要显式设置它

该方法(我认为它比outerHTML更好)具有相同的行为

函数showtuff(el){
设frag=document.createDocumentFragment();
设span=document.createElement('span');
设br=document.createElement('br');
[['Value属性:',el.Value],
['Value属性:',el.getAttribute('Value'),
['Default value:',el.defaultValue],
['outerHTML:',el.outerHTML]
].forEach(道具=>{
frag.appendChild(span.cloneNode()).textContent=props.join(“”);
frag.appendChild(br.cloneNode());
});
设t=document.getElementById('elData');
t、 innerHTML='';
t、 儿童(frag);
}

文本区域
初始值
展示道具和ATT
表演材料
重新设置表单
设置默认值
将默认值更改为此 通过setAttribute设置值(值)
将value属性更改为this 克隆文本区 克隆文本区
我使用outerHTML只是为了触发行为,在我的原始代码中,我只使用value属性,出于某种原因,它会恢复到默认值。谢谢你的帮助。