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

Javascript 将文本复制到具有相同ID的两个输入,javascript,html,Javascript,Html,当我在第一个输入中写东西时,第二个输入显示了它,但是: a) 如果我想看到输入“3”中显示的输入“2”中的文本,该怎么办 HTML: b) 如果我想在两个名为“2”的输入中看到输入“1”中的文本,该怎么办? HTML: 回答A:在ID为2的输入和ID为3的输入中显示相同的值: function al() { var a1 = document.getElementById("1").value; var a2 = document.getElementById("2");

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

a) 如果我想看到输入“3”中显示的输入“2”中的文本,该怎么办

HTML:

b) 如果我想在两个名为“2”的输入中看到输入“1”中的文本,该怎么办? HTML:


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


函数al(){ var a=document.getElementById(“1”).值; var结果=a; var ab=document.queryselectoral(“[class='classA']”); ab[0]。值=ab[1]。值=a; }
回答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;
}


函数al(){ var a=document.getElementById(“1”).值; var结果=a; var ab=document.queryselectoral(“[class='classA']”); ab[0]。值=ab[1]。值=a; }
首先,不能有两个ID相同的元素。 其次,要从一个复制到另一个,最好使用
keyDown
keydup
onchange
事件。 例如


首先,不能有两个ID相同的元素。 其次,要从一个复制到另一个,最好使用
keyDown
keydup
onchange
事件。 例如


为什么要用相同的ID命名两个输入?重复的ID在HTML中无效。所以不,任何关于这个问题的答案都是无效的,传播了一个错误的假设,即重复的ID是可以的,而不是,它是无效的HTML,并且总是有重复的ID。我认为浏览器“允许/处理”这是一个错误,因为这不是规范。为什么你要用相同的ID来命名2个输入?在HTML中重复ID无效。所以不,任何关于这个问题的答案都是无效的,传播了一个错误的假设,即重复的ID是可以的,而不是,它是无效的HTML,并且总是有重复的ID。我认为浏览器“允许/处理”这是一个错误,因为这不是规范。第一部分是OK,第二部分,不是那么多。我建议你改用class属性,也许?请看我对这个问题的评论。谢谢你的回答!我还有一个问题。如果我想要这样的东西怎么办?你明白我的意思吗?@tymeq喜欢什么?@tymeq如果上面的答案有帮助,请接受正确答案。关于这个链接,你的问题是什么?第一部分没问题,第二部分没那么多。我建议你改用class属性,也许?请看我对这个问题的评论。谢谢你的回答!我还有一个问题。如果我想要这样的东西怎么办?你明白我的意思吗?@tymeq喜欢什么?@tymeq如果上面的答案有帮助,请接受正确答案。关于这个链接,你的问题是什么?
function al() {
    var a1 = document.getElementById("1").value;
    var a2 = document.getElementById("2");
    var a3 = document.getElementById("3");
    a2.value = a3.value = a1;
}
<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;
}
  <input type="text" id="1" onchange="copypaste()"/>
  <input type="text" id="2"/>