I'm a Java programmer trying to write a little javaScript. Bear with me.
I would like a function that updates a total when a digit is entered in any one of the input fields in a table. I have the following line in $(document).ready(function() { ... }
$("#lineCountTable").find('input').each().bind('keyup', function() {
updateTotal(this);
});
In Chrome's debug screen, I get:
Uncaught TypeError: cannot read property 'call' of undefined". The line number pointed to is jQuery-1.8.2.js:611.
I figure I have a syntax error in defining the function to be called. The updateTotal(inputVar) function is duly defined later in the JS file; in case someone's interested, it is:
function updateTotal(inputVar) {
var row = inputVar.closest('tr');
var lineCharge = row.find("dlsRowCharge").html().trim();
var total = 0.0
var lineCount = inputVar.val();
if (isNumeric(lineCount)) {
total = math.abs(lineCount * lineCharge).toFixed(2);
row.children(".dlsRowTotal").html("$ " + total);
}
}
I know these functions are usually put inline; I would rather define them separately and call them, unless that's impossible.
each()and useon()instead ofbind()$.fn.each()is mandatory and anyway, just using.each()doesn't make sensethiswill be a DOM Element which you can't callclosest()on - you need to wrap it in a jQuery object. Yourfind()selector also is incorrect, presumably it needs a.class prefixfind()/html()/val())