Reputation: 67
Thi function donot execute for first time . Can you please help me . i am using 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; }
});
});
}
Upvotes: 0
Views: 88
Reputation: 12985
Normally this wouldn't be in a function but you do have to define sender
first:
$(document).ready(function () {
var id = $(sender).attr('id');
$('#' + id).keydown(function (event) {
if ((event.keyCode < 48 || event.keyCode > 57)) { return false; }
else { return true; }
});
});
The code in the function only gets executed when the function is called. Having the above in the function means that no listener/handler for 'on load' gets set up until the function is called elsewhere.
Sometimes code is in a function to isolate it but you will need to call it immediately in that case:
function fillnum(sender) {
... whatever ...
}
fillnum(sender);
Or even if you don't need a name:
function(sender) {
... whatever ...
}(sender);
Upvotes: 0
Reputation: 318232
Just write the function like this, and make sure you don't call it before the DOM is ready :
function fillnum(sender) {
$('#' + sender.id).on('keydown', function(e) {
if (e.which < 48 || e.which > 57) e.preventDefault();
});
}
Upvotes: 0
Reputation: 28837
Change your code to this:
$(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;
}
});
}
});
Upvotes: 1