我正在尝试将“FROM”字段中的值复制到“TO”字段中。我的第一次尝试是这样的:
function updateToField(toField,fromField)
{
toField.value = fromField.value}
}
function verifyFromToFields()
{
var inputs = getElementsByTagName("input");
for (var j = 0; j < inputs.length; j++)
{
if (inputs[j].name.indexOf('FROM') != -1 && if (inputs[j+1].name.indexOf('TO') != -1)
{
var fromField = inputs[j];
var toField = inputs[j+1];
fromField.onchange = function(){updateToField(toField,fromField)};
}
}
该网站有几个 FROM-TO 对,这似乎只适用于“输入”数组中的最后一对。
然后我尝试了这个:
function updateToField(toField,fromField)
{
toField.value = fromField.value}
}
function verifyFromToFields()
{
var inputs = getElementsByTagName("input");
for (var j = 0; j < inputs.length; j++)
{
if (inputs[j].name.indexOf('FROM') != -1 && if (inputs[j+1].name.indexOf('TO') != -1)
{
var fromField = inputs[j];
var toField = inputs[j+1];
fromField.onchange = function(){updateToField(toField,this)};
}
}
这样,当页面中的任何 FROM 字段被修改时,它都会被复制到页面上的最后一个 TO 字段。我认为这是我读过的关于参数作为值或参考的问题之一,但我无法弄清楚。这也是一个非常简化的代码版本,我实际上用 getElementsByClass 函数填充输入列表,并且必须搜索子节点。有没有人知道发生了什么?