将文本复制到具有相同ID的两个输入

时间:2017-09-03 18:11:51

标签: javascript html

当我在第一个输入中写入内容时,第二个输入显示了它,但是:

a)如果我想看输入文字" 2"在输入" 3"?

中显示

HTML:

<input id="1" type="text" oninput=al() /></br>
<input id="2" disabled="disabled" ></br>
<input id="3" disabled="disabled">

JS:

function al() {
    var a = document.getElementById("1").value;
    var result = a;
    var ab = document.getElementById("2");
    ab.value=a;
}

b)如果我想从输入&#34; 1&#34;在两个输入名为&#34; 2&#34;? HTML:

<input id="1" type="text" oninput=al() /></br>
<input id="2" disabled="disabled" ></br>
<input id="2" disabled="disabled">

JS:

function al() {
    var a = document.getElementById("1").value;
    var result = a;
    var ab = document.getElementById("2");
    ab.value=a;
}

2 个答案:

答案 0 :(得分:1)

回答A:要在ID为2的输入和ID为3的输入中显示相同的值:

function al() {
    var a1 = document.getElementById("1").value;
    var a2 = document.getElementById("2");
    var a3 = document.getElementById("3");
    a2.value = a3.value = a1;
}

答案B:使用具有相同ID的元素是错误的,并且会导致HTML文档无效。为了实现您的目标,您可以使用某个类(在下面的示例中为classA)设置两个元素,然后您可以使用document.querySelectorAll返回元素数组,然后使用索引设置它们的值[0][1]

<input id="1" type="text" oninput=al() /></br>
<input class='classA' disabled="disabled" ></br>
<input class='classA' disabled="disabled">

function al() {
    var a = document.getElementById("1").value;
    var result = a;
    var ab = document.querySelectorAll("[class='classA']");
    ab[0].value = ab[1].value = a;
}

答案 1 :(得分:0)

首先,您不能拥有两个具有相同ID的元素。 其次要从一个复制到另一个,最好使用keyDownkeyUponchange事件。 E.g。

  <input type="text" id="1" onchange="copypaste()"/>
  <input type="text" id="2"/>
  function copypaste() {
    var  first = document.getElementById("1")
    var  second = document.getElementById("2")
    second.value = first.value
  }