无法使用event.target.id获取触发事件的输入ID

时间:2015-01-05 07:07:47

标签: javascript jquery

我这里有这个代码来获取点击的输入元素的id:

jQuery(event.target.id).change(function(){

if(event.target.id===null)
    {

    }
else
    {   
    alert(event.target.id);
    }
});

例如:我有一个动态生成的文本框。使用上面的代码单击它后,它将返回id。

但是,当我单击下拉列表输入时,它返回null,但在检查元素时,id就在那里。它仍然会进入else块。

我正在为动态生成的字段使用此事件。

可能出现什么问题?

很抱歉,如果它看起来很无趣,我是jQuery的新手。

2 个答案:

答案 0 :(得分:3)

在选择元素上,您需要收听更改事件,而不是点击事件:

$('select').change(function() {
  var selectId = $(this).attr('id');
  var optionId = $(this).find(":selected").attr('id');
  alert('select id:' + selectId);
  alert('option id: ' + optionId);
});

<强>更新 通常在select元素中,您将查找选项值。这就是你要这样做的方式:

$('#selectId').change(function() {
  var optionValue = $(this).find(":selected").val()
  alert(optionValue);
});

答案 1 :(得分:0)

尝试访问原始目标

 var originalElement = event.srcElement || event.originalTarget;
 console.log(originalElement.id)
相关问题