1

2つの入力があるとします。

<input id="input1" type="text"/><input id="input2" type="text"/>

JavaScriptの魔法を使って、input1に入力したものはすべてinput2にも入れられます。この意味で、input2はinput1を「ミラーリング」します。

テキスト選択を「ミラーリング」する方法はありますか。では、input1でテキストを選択した場合、input2でもまったく同じテキストを選択するにはどうすればよいですか?

私はMicrosoftのTextRangeオブジェクトとMozillaらが使用しているSelectionオブジェクトを見てきましたが、全体の混乱はかなり面倒なようです。誰かが以前にこのようなことをして成功したことがありますか?

明確化:これまでの回答に感謝します。明確にするために:私はテキストをミラーリングする方法を尋ねていません。私はすでにそれを解決しました。問題は、input1のテキストを選択し、input2の対応するテキストも選択することだけです。

4

3 に答える 3

1

私が見る限り、FirefoxとOperaでは非常に簡単です。GoogleChromeとIEはそれほど多くありません。FFで機能するコードは次のとおりです。

<!DOCTYPE html>

<html>
<head>
<meta charset="UTF-8">
</head>
<body>

<input type="text" size="40" id="sel-1" value="Some long text">
<input type="text" size="40" id="sel-2" value="Some long text">

<script type="text/javascript">
var sel_1 = document.getElementById("sel-1");
var sel_2 = document.getElementById("sel-2");

document.onmousemove = function () {
    sel_2.selectionStart = sel_1.selectionStart;
    sel_2.selectionEnd   = sel_1.selectionEnd;
}
</script>
</body>
</html>
于 2009-08-25T21:04:11.610 に答える
0

あなたはあなたが尋ねる最初の部分(ここでの私の答えのように)を行うことができますが、2番目の部分はできません-一度に複数のアクティブな選択された範囲を持つことは不可能です。

于 2009-08-25T20:38:49.307 に答える
-1

JQueryを使用して生活できる場合は、次のようにクローンを作成できます。

$("#input1").keyup(function() { 
  $("#input2").val( $("#input1").val() );
}
于 2009-08-25T20:38:00.027 に答える