Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Добавление в input (https://javascript.ru/forum/jquery/52018-dobavlenie-v-input.html)

Styort 30.11.2014 16:16

Добавление в input
 
Подскажите как при нажатии на какой-либо элемент(допустим кнопка с каким-нибудь текстом) текст элемента вставлялся в мой input (у меня несколько инпутов и нужно что бы текст вставлялся именно в тот, который у меня был предыдущий в фокусе)
Пробовал что-то такое, не выходит

$(document).on('click','#number li a',function(){
    if(($('#input_num1').is(":focus")))
    {
        a = $(this).text();
        $('#input_num1').focus();
        $("#input_num1").val(a);
    }
    else if(($('#input_num2').is(":focus")))
    {
        b = $(this).text();
        $('#input_num2').focus();
        $('#input_num2').val(b);
    }
});


не выходит думаю потому что при клике на элемент фокус спадает с инпута .
Жду предложений как решить, спасибо заранее)

danik.js 30.11.2014 16:23

Вариант 1: Вместо click использовать событие mousedown. Только его надо отменить (event.preventDefault()), иначе элемент украдет фокус (но уже после вставки значения).
Вариант 2: Запоминать последний сфокусированный инпут. Вешаешь обработчик на событие focus, на все инпуты. В обработчике записываешь в переменную ссылку на текущий элемент (this).

danik.js 30.11.2014 16:24

Цитата:

Сообщение от Styort
if(($('#input_num1').is(":focus")))


Проще $('input:focus').val(..)

Styort 30.11.2014 16:28

спасибо большое! попробую сейчас)


Часовой пояс GMT +3, время: 12:50.