jQuery KeyUp не позволяет больше значений

Я новичок в javascript (и jQuery), так что терпите меня.

Я хочу, чтобы пользователь мог вводить число в текстовое поле, и каждый раз, когда пользователь вводит другое значение (нажатие клавиши, нажатие клавиши, нажатие клавиши), код выполняет и вычисляет новое значение.

Вот jsFiddle

Моя проблема в том, что текстовое поле не позволит мне ввести более одного значения. Как мне продолжать вводить больше значений?

jQuery (1.9.1)

$(document).ready(function() {
    $('.conv').keyup(function() {
      var valx = parseFloat($(this).attr('data-val'));
      var classes = parseInt($('.conv').length);

      for (var i=1;classes;i++) {
          var x = 'a' + i;
          //alert(x);
          var theval = document.getElementById(x);
            var z = parseFloat($('#' + x).attr('data-val'));
            //alert(z);
            $('#' + x).val(z / valx);
        if (i == classes) {
        break;
        }
    }
    });
 });

Опять же... вот jsFiddle, если вы хотите редактировать

1 ответ

Решение

Вы, кажется, перезаписываете даже значение текстового поля, которое сгенерировало событие.

замещать

$('#' + x).val(z / valx);

с

$('#' + x).not(this).val(z / valx);

РЕДАКТИРОВАТЬ

Причина в том, что вы всегда читаете значение из

var valx = parseFloat($(this).attr('data-val'));

вместо

var valx = parseFloat($(this).val());

Проверьте скрипку

Другие вопросы по тегам