Сначала вы привязали селектор к неправильному элементу. Вместо привязки событий на
$('#DP')
вы должны связать их с
$('#levelselect')
Во-вторых, вы хотите перехватить каждое событие, используйте для этого событие «изменение», чтобы убедиться, что перехватываются не только нажатия клавиш, но и вставки и нажатия стрелок вверх и вниз рядом с вводом: 1007 *
function calcDP()
{
var level = parseInt($('#levelselect').val(), 10);
var DPatZero = 400;
var DPatOne = 600;
var workDP = 0;
if (level === 0)
{
workDP = DPatZero;
}
else if (level == 1)
{
workDP = DPatOne;
}
else
{
workDP = DPatOne + (level * 100);
}
$('#DP').text(workDP);
}
$(document).ready(function()
{
// Bind calcDP onchange to make sure every event is being caught.
$('#levelselect').on('change', calcDP);
// Call the onchange event to make sure the current value is evaluated
$('#levelselect').change();
}
Кроме того, в вашем начальном JSfiddle вы использовали Mootools в качестве необходимого каркаса слева вместо jQuery.
Полный сценарий см. В JS fidle: http://jsfiddle.net/9M4cD/4/