Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как подвесить события к полученным по атрибутам name через this инпутам (https://javascript.ru/forum/events/75282-kak-podvesit-sobytiya-k-poluchennym-po-atributam-name-cherez-inputam.html)

kusnecow 18.09.2018 22:35

Как подвесить события к полученным по атрибутам name через this инпутам
 
Подскажите, как подвесить события к полученным по атрибутам name через this инпутам :help:

<script>

window.onload = function(e) {
var buttons = document.querySelectorAll('.actions input');
for (var i = 0; i < buttons.length; i++) {
buttons[i].onclick = btnClick;
}

}
function btnClick(e) {
var name = this.getAttribute ('name');

if ( name == 'save') {
console.log(1);
}
else if ( name == 'delete') {
console.log(2);
}
}

</script>

рони 18.09.2018 22:48

kusnecow,
:-? подожду переводчика
и
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 18.09.2018 22:48

kusnecow,
что не работает или хочется сделать?

kusnecow 18.09.2018 23:56

<div class="actions">
		<input type="button" name="save" value="сохранить"/>
		<input type="button" name="delete" value="удалить"/>
	</div>

var buttons = document.querySelectorAll('.actions input');
	for (var i = 0; i < buttons.length; i++) {
		buttons[i].onclick = btnClick;
	}

			}
			function btnClick(e) {
				var name = this.getAttribute ('name');
				
				if ( name == 'save') {
					console.log(1);
				}
				else if ( name == 'delete') {
					console.log(2);
				}

не знаю как подвесить события при нажатии на кнопки:agree: :help:

рони 18.09.2018 23:59

Цитата:

Сообщение от kusnecow
не знаю как подвесить события при нажатии на кнопки

не могу осилить, подожду знатоков.

рони 19.09.2018 00:01

kusnecow,
всё у вас работает, что ещё не хватает?

kusnecow 19.09.2018 00:08

не хватает мозгов как например поменять бекграунд кнопок при нажатии. если вешать на name, отладчик пишет что TypeError: name.classList is undefined

рони 19.09.2018 00:12

kusnecow,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
      .red {
          background-color: #FF0000;
      }

  </style>

</head>

<body>
<div class="actions">
		<input type="button" name="save" value="сохранить"/>
		<input type="button" name="delete" value="удалить"/>
	</div>

<script>

 window.onload = function(e) {
var buttons = document.querySelectorAll('.actions input');
for (var i = 0; i < buttons.length; i++) {
buttons[i].onclick = btnClick;
}

}
function btnClick(e) {
var name = this.getAttribute('name');

if ( name == 'save') {
this.classList.add("red");

}
else if ( name == 'delete') {
alert(2);
}
}

 </script>

</body>
</html>

kusnecow 19.09.2018 01:07

О КРУТО, СПАСИБО)

laimas 19.09.2018 05:53

Цитата:

Сообщение от рони
var name = this.getAttribute('name');

А почему не просто this.name ?


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