2013-05-28 2 views
0

У меня возникает проблема, когда я хочу, чтобы текст поля ввода автоматически выделялся при открытии выпадающего списка. С точки зрения пользователя я хочу, чтобы они могли скопировать эту ссылку в буфер обмена, нажав CTRL C, поэтому я хочу, чтобы она автоматически выбиралась по этой причине.Автоматический выбор текста поля ввода при раскрытии раскрывающегося списка

My Demo здесь http://jsfiddle.net/Yppqw/11/

Мой Ввод принадлежит к Bootstrap раскрывающийся и настроен вывести текущий URL.

и JavaScript Я использую, чтобы попытаться сделать это следующим образом

$(function() { 
    /* Add Current URL to Input Field */ 
    $('input.shareURL').val(window.location); 

    /* Select input field text automatically*/ 
    $('input.shareURL').select(); 
}); 


/* Stop Dropdown from closing when input clicked */ 
$('.inputDrop').find('input').click(function (e) { 
    e.stopPropagation(); 
}); 

Как я могу получить это поле ввода, чтобы уже быть выбран, когда я открываю выпадающий список?

Благодаря

+0

HTTP : //jsfiddle.net/Yppqw/18/. Не использует тайм-ауты. –

+0

@ PetrČihula, хорошо, но это решение не работает с файлом Bootstrap JS, загруженным в ресурсы http://jsfiddle.net/Yppqw/19/ Я вижу, что вы удалили его на работу – Redwall

ответ

3

На самом деле, когда вы открываете textbox это invisible к DOM, поэтому он не select text, Так что ждите 200 ms и затем select text как,

$('button').on('click',function(){ 
     setTimeout(function(){$('input.shareURL').select();},200); 
    }); 

Тест Fiddle

+0

Я пробовал это и не работал. У вас есть рабочий jsfiddle с этим решением? – Redwall

+0

@Redwall Протестируйте приведенный выше ответ. Я внес изменения в него. –

+0

Спасибо за это. Вы знаете, зачем ему нужен тайм-аут? Было бы интересно узнать ... Я отредактировал «200» -> «1», чтобы ускорить выделение. Спасибо за решение ... EDIT: Извините, прочитайте ваше объяснение, почему :) – Redwall

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