Просмотр полной версии : Как подвесить события к полученным по атрибутам name через this инпутам
kusnecow
18.09.2018, 22:35
Подскажите, как подвесить события к полученным по атрибутам 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>
kusnecow,
:-? подожду переводчика
и
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
... ваш код...
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
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:
не знаю как подвесить события при нажатии на кнопки
не могу осилить, подожду знатоков.
kusnecow,
всё у вас работает, что ещё не хватает?
kusnecow
19.09.2018, 00:08
не хватает мозгов как например поменять бекграунд кнопок при нажатии. если вешать на name, отладчик пишет что TypeError: name.classList is undefined
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
О КРУТО, СПАСИБО)
var name = this.getAttribute('name');
А почему не просто this.name ?
kusnecow
19.09.2018, 22:40
name это переменная. а 'name' это атрибут инпута. мы получаем атрибут инпута и кладем в переменную.
name это переменная. а 'name' это атрибут инпута
Это в пользовательском атрибуте ковыряться придется, а name, id, ... доступны и так = this.name, this.id, .... Объект в консоль и смотрим.
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot