这个功能不是第一次执行。你能帮我么 。我正在使用jquery-2.0.3.js
function fillnum(sender) {
$(document).ready(function () {
var id = $(sender).attr('id');
$('#' + id).keydown(function (event) {
if ((event.keyCode < 48 || event.keyCode > 57)) { return false; }
else { return true; }
});
});
}
答案 0 :(得分:1)
将您的代码更改为:
$(document).ready(function() {
function fillnum(sender) {
var id = $(sender).attr('id');
$('#' + id).keydown(function(event) {
if ((event.keyCode < 48 || event.keyCode > 57)) {
return false;
} else {
return true;
}
});
}
});
答案 1 :(得分:0)
通常情况下,这不会出现在函数中,但您必须首先定义sender
:
$(document).ready(function () {
var id = $(sender).attr('id');
$('#' + id).keydown(function (event) {
if ((event.keyCode < 48 || event.keyCode > 57)) { return false; }
else { return true; }
});
});
函数中的代码仅在调用函数时执行。在函数中使用上述内容意味着在其他地方调用函数之前,不会设置“on load”的侦听器/处理程序。
有时代码是在隔离它的函数中,但在这种情况下你需要立即调用它:
function fillnum(sender) {
... whatever ...
}
fillnum(sender);
或者即使您不需要名字:
function(sender) {
... whatever ...
}(sender);
答案 2 :(得分:0)
只需编写这样的函数,并确保在DOM准备好之前不要调用它:
function fillnum(sender) {
$('#' + sender.id).on('keydown', function(e) {
if (e.which < 48 || e.which > 57) e.preventDefault();
});
}