通过event.target我怎么知道它是复选框还是收音机?

时间:2013-11-15 06:00:49

标签: javascript jquery

在我的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"
}

}); 

那我怎么知道我点击复选框或单选按钮

任何帮助将不胜感激

7 个答案:

答案 0 :(得分:44)

.nodeName会使用html标记,因此您必须使用.type来获取该节点的类型。

试试这个:

console.log(event.target.type);

Demo

答案 1 :(得分:22)

对于那些寻找纯JavaScript方式的人来说,它是event.target.tagName

该属性是元素类型的大写字符串,如“A”,“UL”,“LI”等。

答案 2 :(得分:5)

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

答案 3 :(得分:0)

您可以使用event.target.getAttribute('type')代替

答案 4 :(得分:0)

尝试使用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
});

答案 5 :(得分:0)

你可以使用

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
   }

}

答案 6 :(得分:0)

对于使用jQuery的节点类型,您可以使用:

  • $(event.target) .attr('type')
  • event.target .type
$("SELECTOR").click(function (event) {
var idEventTarget = $(event.target).attr('id');
console.log($(event.target).attr('type'));
console.log(event.target.type);
});