这是我到目前为止反映(复制数据)其他文本字段的内容,但我想在多个(超过四个)字段中执行此操作:
<script type="text/javascript">
function copyData(from,to) { to.value = from.value; }
</script>
<input type="text name="Company_Name__1" autofocus="focus" value="" size="20" required
onChange="copyData(this,document.Broker_Opportunity.Company_Name__15)" onKeyUp="copyData(this,document.Broker_Opportunity.Company_Name__15)">
<input type="text" name="Company_Name__15" value="" size="20" required
onChange="copyData(this,document.Broker_Opportunity.Company_Name__1)" onKeyUp="copyData(this,document.Broker_Opportunity.Company_Name__1)">
答案 0 :(得分:2)
您可以将元素ID数组用作参数。像这样的东西
copyData(this, ['id1', 'id2']);
然后,您应该在for循环上迭代数组并使用document.getElementById
来获取元素并复制值。
答案 1 :(得分:1)
如果你想保持同样的结构:
function copyData(from,to) {
to.value = from.value;
}
然后合理地to
值必须是多个值。这意味着一个数组。像这样:
function copyData(from,to) {
for (var i = 0; i < to.length; i++) {
to[i].value = from.value;
}
}
然后使用它你只需传递一个数组而不是一个元素:
<input type="text name="Company_Name__1" autofocus="focus" value="" size="20" required
onChange="copyData(this,[document.Broker_Opportunity.Company_Name__15, document.someOtherElement])"
onKeyUp="copyData(this,[document.Broker_Opportunity.Company_Name__15, document.someOtherElement])">
答案 2 :(得分:1)
要简化HTML代码,请使用常用class
值来标识目标文本字段:
HTML代码:
<input type="text name="Company_Name__1" autofocus="focus" value="" size="20" required
onChange="copyData(this,'your_class')"
onKeyUp="copyData(this,'your_class')">
JS代码:
function copyData(from, dest_class) {
var toArr = document.getElementsByClassName(dest_class);
for (var i = 0; i < toArr.length; i++) {
toArr[i].value = from.value;
}
}