Jquery:选择对.click()做出反应,而不是对.change()

Jquery: select react to .click() but not to .change()

本文关键字:change 选择 click Jquery      更新时间:2023-09-26

我正在使用wordpress插件计算字段表单,它使用带有日期字段的ajax日历,并在用户单击给定日期时更新日期。但是,我希望在用户更改月份或年份时也更改日期。我试图检测选择月份/年份(选择字段)的字段何时被更改。但是,我没有得到对.change()处理程序的响应。

$(document).on("change", "#ui-datepicker-div select", function (event) {
    console.log("change handler: new month is ", $(this).val());
});

永远不会被调用,即使在我改变了值之后。请注意:选择器是正确的,因为如果我用"click"替换"change",上面的代码就可以工作。这也应该涵盖元素尚未准备好、jquery未正确加载等可能性。我可以对该元素做任何事情,但是要更改(),它没有响应。你知道为什么会这样吗?或者在选择字段发生变化时插入一些代码的扭转方式?

唯一可能的原因是元素上没有发生更改事件。

也许你的日历没有使用html的选择元素,而是像Jquery的select2。

如果是这样,更改处理程序将根据您使用的ui库而有所不同!!

请贴出HTML代码!

查看源代码后,我假设WordPress的计算字段表单使用jQuery的日期拾取器。在这种情况下,要触发日期选择器的选择字段,您需要使用"onSelect"选项。试着看看是否有帮助。

$("datepicker_input_field").datepicker({
    onSelect: function(dateText) {
        var date = $(this).val();
        var text = dateText;
        console.log(date, text);
        alert('Event is triggered on change');
    }
});​