0

我是 JavaScript 新手,有一个基本问题。我在服务器生成的页面上有 2 个文本字段,我想将字段 1 的文本值复制到字段 2,然后将字段 1 的值设置为空字符串。问题是由于 JavaScript 正在执行浅拷贝,因此字段 2 的值也设置为空字符串。

这是代码:

var eleTxtInit = document.getElementById("InputText0");
if (eleTxtInit == null) {
            eleTxtInit = document.getElementsByName("InputText0");
}


var eleTxtControl = document.getElementById("InputText1");
if (eleTxtControl == null) {
            eleTxtControl = document.getElementsByName("InputText1");
}

eleTxtControl.value = eleTxtInit.value;
eleTxtInit.value = "";

上面代码的结果是InputText1value 也变成""了 :( ..

这里有什么解决方案?

4

2 回答 2

2

我认为你的问题是: eleTxtControl = document.getElementsByName("InputText1");getElementsByName返回一个Nodelist,所以你应该使用

eleTxtInit = document.getElementsByName("InputText0")[0];
//and ofcourse
eleTxtControl = document.getElementsByName("InputText1")[0];

jsfiddle

于 2012-09-07T07:31:20.990 回答
0
eleTxtInit = document.getElementsByName("InputText0");

触发将导致后续代码失败,因为document.getElementsByName返回的是HTMLCollection,而不是Element。同上eleTxtControl

于 2012-09-07T07:30:55.140 回答