нет, я хочу это переделать
|
я быстро нарисую на php таблички для выбора, сделаю их скрытыми, мне нужно сделать выбор и передачу значения в поле
|
mbp64,
https://jqueryui.com/dialog/ - модальные окна https://api.jquery.com/click/ - обработчик клика http://api.jquery.com/attr/ - прием-передача атрибутов типа id, class и любых других |
причем, чем проще, тем лучше
|
Не получается обработать клик :(
|
<input name="otkogo" type="text" />
<input name="komu" type="text" />
<div class="table" style="display:none">
<div class="user">
<span class="id">1</span>
<span class="name">меня</span>
</div>
<div class="user">
<span class="id">2</span>
<span class="name">забанили</span>
</div>
<div class="user">
<span class="id">3</span>
<span class="name">в</span>
</div>
<div class="user">
<span class="id">4</span>
<span class="name">гугле</span>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$('input').focusin(function(){
var name = $(this).attr('name');
$('.table').attr('kuda',name).fadeIn();
});
$('.table').on('click','.user',function(){
var kuda = $('.table').attr('kuda');
var value = $(this).find('.id').html()+' - '+$(this).find('.name').html();
$('*[name="'+kuda+'"]').val(value);
$('.table').fadeOut();
});
</script>
|
Спасибо. Я попробую в этом разобраться
|
mbp64, все выглядит примерно так:
<script>
$('input').focusin(function(){// - при получении полем фокуса сработают две следующие строки
var name = $(this).attr('name');// - присваиваем переменной name атрибут name поля, которое в фокусе
$('.table').attr('kuda',name).fadeIn();// - передаем в атрибут "kuda" дива, в котором пользователи атрибут name поля, которое в фокусе и показываем таблицу
});
$('.table').on('click','.user',function(){// - при клике по строке с пользователем сработают следующие четыре строки
var kuda = $('.table').attr('kuda');// - присваиваем переменной kuda значение атрибута kuda блока с пользователями, в котором находится имя поля
var value = $(this).find('.id').html()+' - '+$(this).find('.name').html();// - создаем текст, который нужно запихать в текстовое поле и укладываем его в переменную value
$('*[name="'+kuda+'"]').val(value);// - кладем в текстовое поле значение из предыдущей строки
$('.table').fadeOut();// - прячем таблицу
});
</script>
|
:write:
<meta charset="utf-8">
<input name="otkogo" type="text" />
<input name="komu" type="text" />
<div class="table" style="display:none">
<div class="user">
<span class="id">1</span>
<span class="name">меня</span>
</div>
<div class="user">
<span class="id">2</span>
<span class="name">забанили</span>
</div>
<div class="user">
<span class="id">3</span>
<span class="name">в</span>
</div>
<div class="user">
<span class="id">4</span>
<span class="name">гугле</span>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
var obj = {};
$('input').focusin(function(){
obj.el = this;
$('.table').fadeIn();
});
$('.table').on('click','.user', obj,function(e){
var value = $(this).find('.id').html()+' - '+$(this).find('.name').html();
$(e.data.el).val(value);
$('.table').fadeOut();
});
</script>
|
mbp64,
В хроме: 1. Правой кнопки мыши по элементу на котором установлен обработчик события 2. Инспектировать элемент 3. Справа в панеле. Таб - Event Listeners, пункт - click |
| Часовой пояс GMT +3, время: 04:12. |