如何在一个实时复制到多个文本字段的文本字段中输入文本?

时间:2015-01-29 13:47:39

标签: javascript html

这是我到目前为止反映(复制数据)其他文本字段的内容,但我想在多个(超过四个)字段中执行此操作:

<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)">

3 个答案:

答案 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;
        }
    }