2017-09-03 118 views
0

当我在第一次输入写的东西,第二次输入显示了它,但:将文本复制到具有相同ID的两个输入

一)如果我想看到输入“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)如果我想看到从两个输入端输入 “1” 的文字命名为 “2”? 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; 
} 
+0

为什么你的名字2个输入使用相同的ID? –

+1

HTML中的重复ID无效。所以不行。 https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id和https://www.w3.org/TR/html401/struct/global.html#h-7.5.2 –

+0

对于这个外部的任何IT无效的答案,都会传播错误的假设:重复的ID在没有的时候可以正常使用,它是无效的HTML,并且一直有重复的ID。我认为浏览器“允许/处理”这是一个错误,因为这不是规范。 –

回答

1

回答:要显示在输入与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的元素是错误的,将会导致t在一个无效的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; 
} 
+0

第一部分是OK,第二部分没有。我建议你改变使用类属性也许? –

+0

@MarkSchultheiss为什么答案B不正确? –

+0

请看我对这个问题的评论。 –

0

首先,你不能有两个具有相同ID的元素。 第二个从一个复制到另一个,最好使用keyDown,keyUponchange事件。 例如

<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 
    } 
相关问题