Я могу получить выделенный пользователем текст в текстовом входе формы?

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

<input type="text" name="first_name" id="first_name" value="Enter your name" />

И пользователь выбирает "Ввести" слово путем перетаскивания в текстовом поле. Я могу получить тот текст с jQuery?

Я знаю, что могу получить целое значение этот путь:

$("#first_name").val();

Но до сих пор, я не нашел так или иначе для получения, только выбранные "Вводят" часть. Кто-либо может указать на меня в правильном направлении?Спасибо!

Править

Я попробовал document.getSelection, и он работает отлично в Firefox на элементе статического текста, таком как "p". Это не работает на меня до сих пор на вводе текста.

В IE window.selection.createRange () .text работает и над "p" и во вводе текста.

7
задан Gabriel 5 August 2010 в 19:24
поделиться

4 ответа

Хорошо, вот окончательный ответ. Похоже, нам нужно использовать selectionStart и selectionEnd вместо getSelection (), когда мы работаем с input или textarea. Вот мой тестовый код:

$(".name").mouseup(function()
{
    var selected_text = "";
    if (window.getSelection) // Firefox
    {
        var text = $(this).val();
        selected_text = text.substring(document.activeElement.selectionStart, document.activeElement.selectionEnd);
    }
    else // IE
    {
        selected_text = document.selection.createRange().text;
    }
    alert(selected_text);
});

А мой HTML-код прост:

<input type="text" name="name" class="name" value="Enter your name" />

Итак, я наконец получил его. Спасибо за вклад!

1
ответ дан 7 December 2019 в 07:38
поделиться

Это можно сделать, используя Функция выбора jQuery и document.getSelection

http://www.devguru.com/Technologies/ecmascript/quickref/doc_getselection.html http://api.jquery.com/select/

3
ответ дан 7 December 2019 в 07:38
поделиться

Это может помочь. Вам нужно будет использовать функцию .select () .

2
ответ дан 7 December 2019 в 07:38
поделиться

Вы можете использовать обычный метод замены javascript.

$("#first_name").val().replace("Enter your name", "")

См. Пример: http://jsfiddle.net/gezDF/

Однако другим вариантом может быть удаление текста, когда пользователь вводит поле. Это можно сделать примерно так:

$(document).ready(function(){
    $("#first_name").focus(function () {
         $(this).val("");
    });
}​);​

См. Пример: http://jsfiddle.net/JNmAF/

1
ответ дан 7 December 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: