Ответ 1
.nodeName
дает тэг html
поэтому вам нужно использовать .type
для получения типа узла.
Попробуй это:
console.log(event.target.type);
в моем html
<input type="checkbox" name="select">
<input type="radio" name="select">
свойство имени по той или иной логической причине
в моем JS
я пишу ниже код
$('input[type="checkbox"],input[type="radio"]').on("change",function(event){
console.log(event.target.nodename);
// on both cases it show "INPUT"
}
});
Тогда как я узнаю, что я нажимаю на флажок или переключатель
любая помощь будет оценена
.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"]'));
вы можете использовать event.target.getAttribute('type')
вместо этого
Попробуйте использовать 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
});
вы можете использовать
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
}
}