Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как определить, откуда вызвано модальное окно? (https://javascript.ru/forum/dom-window/63818-kak-opredelit-otkuda-vyzvano-modalnoe-okno.html)

mbp64 01.07.2016 15:47

нет, я хочу это переделать

mbp64 01.07.2016 15:49

я быстро нарисую на php таблички для выбора, сделаю их скрытыми, мне нужно сделать выбор и передачу значения в поле

Viral 01.07.2016 15:49

mbp64,
https://jqueryui.com/dialog/ - модальные окна
https://api.jquery.com/click/ - обработчик клика
http://api.jquery.com/attr/ - прием-передача атрибутов типа id, class и любых других

mbp64 01.07.2016 15:49

причем, чем проще, тем лучше

mbp64 01.07.2016 16:02

Не получается обработать клик :(

Viral 01.07.2016 16:20

<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 01.07.2016 16:23

Спасибо. Я попробую в этом разобраться

Viral 01.07.2016 16:29

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>

рони 01.07.2016 16:57

: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>

Rasy 01.07.2016 17:02

mbp64,
В хроме:
1. Правой кнопки мыши по элементу на котором установлен обработчик события
2. Инспектировать элемент
3. Справа в панеле. Таб - Event Listeners, пункт - click


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