我有一个输入和一个附加的事件处理程序,由于某种原因,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中调试时,我看到它到达了附加处理程序的函数。它只是永远不会进入它的内部。
最佳答案
您可以检查是否可行:
$(tagField).keyup(function() {
代替
$(tagField).on('keyup paste cut', function () {
关于javascript - jQuery上的键不触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19665224/