Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   При нажатии на ник он появляется в форме ответа (https://javascript.ru/forum/dom-window/60827-pri-nazhatii-na-nik-poyavlyaetsya-v-forme-otveta.html)

frolgp 22.01.2016 12:07

При нажатии на ник он появляется в форме ответа
 
'<p><em>('+ objChat.chats[i].date +')</em> <span class="chatusr">'+ objChat.chats[i].user +' </span> : '+bbcodeParser.bbcodeToHtml(objChat.chats[i].chat)+' </p>';


objChat.chats[i].user
- это ник

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

DynkanMaclaud 22.01.2016 12:35

frolgp,
вы используете ООП и не знаете как написать функцию простую функцию... Я вам помогу... Выбираете все элементы с классом chatusr, используя document.querySelectorAll, далее перебираете все элементы циклом и в цикле вешаете на каждый элемент событие ... А в обработчике в переменную userName получаете имя юзера как this.innerHTML. Теперь нужно вставить полученную строку в текст сообщения, то есть вот так form.innerHTML += userName; где form это Id формы ввода сообщений

frolgp 22.01.2016 14:10

Я в JS новичок, я, практически, ничего не понял, что вынаписали

DynkanMaclaud 22.01.2016 18:53

frolgp,
так может быть стоит почитать https://learn.javascript.ru

frolgp 23.01.2016 12:12

DynkanMaclaud,
слишком долго разбираться, а мне нужно срочно

MrGrVV 23.01.2016 16:56

Цитата:

Сообщение от frolgp (Сообщение 404742)
DynkanMaclaud,
слишком долго разбираться, а мне нужно срочно

Нашли решение?

frolgp 23.01.2016 21:21

MrGrVV,
нет, не нашел

Lemme 24.01.2016 12:27

<input type="text">
<script>
// GENERATE USERS
for(var i = 0; i < 5; i++) {
	var user = document.createElement('p');
	user.classList.add('user');
	user.innerHTML = Math.random().toString(36).substring(2);
	document.body.appendChild(user);
}


var input = document.querySelector('input');

[].forEach.call(document.querySelectorAll('.user'), function(user) {
	user.onclick = function() {
		input.value = this.innerHTML;
	}
});
</script>

DynkanMaclaud 25.01.2016 17:52

Lemme,
<script>
// GENERATE USERS
for(var i = 0; i < 5; i++) {
	var user = document.createElement('p');
	user.classList.add('user');
	user.innerHTML = Math.random().toString(36).substring(2);
	document.body.appendChild(user);
}


var input = document.querySelector('input');

[].forEach.call(document.querySelectorAll('.user'), function(user) {
	user.onclick = function() {
		input.value += this.innerHTML; // *************
	}
});
</script>


Думаю что лучше добавлять в инпут а то так текст написал нажал на пользователя и нету текста)


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