The problem is a common one ... and I just recently described it here in a different context
You say contcheck is a counter. So you have some kind of a loop where you increase/decrease contcheck. In every loop you create a change listener for the respective select element. So far so good. With the callback of the change listener you create a CLOSURE. This closure is aware of the surrounding scope even if the code of the scope has already finished executing.
BUT: It is not aware of its scope from the time it was created but rather from the point of time it's executed. And by that time the counter will ALWAYS be on its value from the final loop.
Solution: Create an inner closure inside a self-calling anonymous function like this
Code:
var contcheck = ....
$(...).change((function(innerContcheck) {
return function() {
// you can access the correct "contcheck" here using innerContcheck
}
})(contcheck));