2017-09-03 58 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 
    } 
相關問題