2009-08-25 2 views
1

Скажем, у вас есть два входа:Как выбрать зеркальный выбор текста?

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

таким образом, что через какой-то магии JavaScript, все, что вы вводите в input1 также будет положить в input2. В этом смысле input2 «зеркало» input1.

Есть ли способ, которым я могу также «зеркально отобразить» выбор текста. Так что, если я выберу какой-то текст в input1, как я могу выбрать тот же самый текст в input2 также?

Я смотрел объект Microsoft TextRange и объект Selection, используемый Mozilla et al, но весь беспорядок кажется довольно громоздким. Кто-нибудь имел успех, делая что-то подобное раньше?

ПОДРАЗДЕЛЕНИЕ: Спасибо за ответы до сих пор. Чтобы быть ясным: я не спрашиваю, как отразить текст. Я уже решил это. Вопрос заключается только в выборе текста в input1 и наличии соответствующего текста в input2.

ответ

1

Это очень просто в Firefox и Opera, насколько я вижу. Google Chrome и 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> 
+0

Я даже не уверен, что эти браузеры поддерживают выбор нескольких частей на странице одновременно. –

+0

Прекрасно работает в Firefox. Я понятия не имел, что возможны множественные выборы. – artlung

+0

Я должен уточнить: протестирован в FF 3.5.2 и отлично работает. – artlung

-1

Если вы можете жить с помощью JQuery, то клонирование может быть сделано таким образом:

$("#input1").keyup(function() { 
    $("#input2").val($("#input1").val()); 
} 
0

Вы можете сделать первую часть вы спрашиваете о том (как мой ответ here), но не 2-ю часть - это просто невозможно одновременно иметь более одного активного выбранного диапазона.

Смежные вопросы