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());