2017-09-03 7 views
0

、第2の入力は、それを示したが、:テキストのコピーは

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)私は "2" という名前の2回の入力で入力 "1" からテキストを表示したい場合は? 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

なぜあなたは、同じIDを持つ2つの入力に名前を付けるのでしょうか? –

+1

重複IDがHTMLで無効です。そうではありません。 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

これが正当なものでないということは、IDが重複していてもOKではないという誤った仮定を伝えます。無効なHTMLであり、常に重複したIDを持つことになりました。私はブラウザがこれが仕様ではないので、これをバグに「許可/処理する」と考えています。 –

答えて

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の要素を使うのは間違っており、 tを無効なHTML文書に挿入します。

<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; 
} 
:あなたの目標を達成するためには、特定のクラス(以下の例で classA)、その後、あなたは要素の配列を返す document.querySelectorAllを使用することができ、その後、インデックス [0][1]とその値を設定すると、両方の要素を設定することができます
+0

これの最初の部分はOKです.2番目の部分はそんなにありません。おそらくクラス属性を使用するように変更することをお勧めしますか? –

+0

@ MarkSchultheissなぜ答えBが間違っていますか? –

+0

質問に対するコメントを参照してください。 –

0

まず、同じIDを持つ2つの要素を持つことはできません。 もう1つコピーするには、keyDown,keyUpまたはonchangeというイベントを使用する方がよいでしょう。 など。

<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 
    } 
関連する問題