我有一个输入和一个事件处理程序,由于某种原因,keyup 事件不起作用。我已经看了一段时间,无法弄清楚问题所在。当我在输入框中输入内容时,甚至没有显示警报窗口。
$(function () {
var tagField = $("#<%= EditTagNum.ClientID %>"); //asp.net code to get the generated client ID
$(tagField).on('keyup paste cut', function () {
alert('inside event handler');
var _this = this;
//because the paste event fires before the text has actually been
//pasted, I have to set a timeout. Once the timeout occurs, the text
//has then been entered into the input box.
setTimeout(function () {
var text = $(_this).val();
$(_this).val(text.replace(/\D/g, ''));
}, 0);
});
});
更新: 我将代码更改为直接使用生成的客户端 ID:
$("#ctl00_ContentPlaceHolder1_EditTagNum").on(.....
这并没有解决问题。但我确实发现,一旦我在控制台中运行我的事件处理函数,它就会起作用。如果从未附加事件处理程序。然而,当我在 chrome 中调试时,我看到它到达了附加处理程序的函数。它永远不会进入它。