如何获取包含日期选择器的输入字段的id

How to get the id of input field that contains a datepicker

本文关键字:选择器 输入 字段 id 日期 包含 何获取 获取      更新时间:2023-09-26

我有一组属于mainField类的输入字段,如下所示:

<input type="text" class="mainField" id="datepicker">
<input type="text" class="mainField" id="task">
<input type="text" class="mainField" id="subtask">

在CCD_ 2中,

$("#datepicker").datepicker();
$(".mainField").change(function () {
   alert(event.target.id);
}); 

虽然当我更改正常字段时,它会返回id,但当我在日期选择器中选择不同的日期时,它就不起作用了。当我选择不同的日期时(不使用日期选择器的选择方法),如何获取字段的id?

您可以使用this.id来获取当前元素的id。

$(".mainField").change(function () {
   alert(this.id);
});

Fiddle

您使用的是全局事件对象,而不是将传递给处理程序的事件对象用作第一个参数。在IE浏览器的事件模型中,event对象没有作为参数传递,而是一个名为event的全局变量引用了该事件对象(我认为现在其他浏览器也支持它)。只有在本机事件(如更改输入字段的值时触发的事件)的情况下才会发生这种情况。

但是日期选择器不会触发本机点击事件,它是通过程序触发的,可能没有正确设置全局事件对象。

$(".mainField").change(function (event) {
    console.log(event.target.id);
}); 

演示:Fiddle

这与使用this.id相同,其中this指的是事件处理程序的目标元素