По event.target, как я знаю, что это флажок или это радио?

в моем html

свойство имени по той или иной логической причине

в моем JS

я пишу ниже код

$('input[type="checkbox"],input[type="radio"]').on("change",function(event){
console.log(event.target.nodename);
// on both cases it show "INPUT"
}

});

Тогда как я узнаю, что я нажимаю на флажок или переключатель

любая помощь будет оценена

6 ответов

.nodeName дает тэг html поэтому вам нужно использовать .type для получения типа узла.

Попробуй это:

console.log(event.target.type);

демонстрация


Для тех, кто ищет чистый JavaScript-метод, event.target.tagName.

Это свойство представляет собой прописную строку типа элемента, например "A", "UL", "LI" и т.д.


console.log($(event.target).is(':radio'));
console.log($(event.target).is('[type="radio"]'));


вы можете использовать

function test(e)
{
 var eve = e || window.event;
 var ele = eve.target || eve.srcElement;

 switch(ele.getAttribute('type'))
 {
 case "radio" : //do whatever

 case "checkbox" : //do
 }

}


Попробуйте использовать attr() как,

console.log($(this).attr('type'));// checkbox or radio

Код

$('input[type="checkbox"],input[type="radio"]').on("change", function (event) {
 console.log($(this).prop('tagName'));// INPUT
 console.log($(this).attr('type'));// checkbox or radio
});


вы можете использовать event.target.getAttribute('type') вместо этого

licensed under cc by-sa 3.0 with attribution.