#jquery
#jquery
Вопрос:
У меня есть этот код здесьhttp://jsfiddle.net/RzBeM/65 / вы увидите два поля ввода, называемых количеством. По сути, первая часть умножает количество на значение очков карты и возвращает значение, а во второй части количество умножается на значение карты и выдает значение. Проблема в том, что я должен вводить число в оба входа, я хотел бы иметь один вход, но выполнять оба умножения одновременно. Также, если вы вводите значение и стираете его, отображается NaN, как мне это предотвратить?
Комментарии:
1. NaN означает не число. Позвольте мне взглянуть на код. Две секунды. Не могли бы вы попробовать написать свой пост еще раз? Я не уверен на 100%, что вы пытаетесь сделать. Вы хотели бы убрать из отображения первое вычисление?
2. @OptimusCrime о, хорошо, спасибо, есть ли способ принимать только целые числа и ничего больше?
3. Ваша переменная
howMany
указывает на точки карты, это предназначено?4. @bammab: Не могли бы вы решить эту проблему?
Ответ №1:
здесь у вас есть модифицированная версия вашего кода. я удалил второй ввод количества
$("input[id*=-id-]").keyup(function() {
var quantity = $(this).val();
var cardPoints = parseInt($(this).parents("tr").find('input:eq(1)').val());
var realValue = parseInt($(this).parents("tr").find('input:eq(2)').val());
cardCalc = cardPoints * quantity;
realCalc = realValue * quantity;
$(this).parents("tr").find("td:eq(2)").html(cardCalc);
$(this).parents("tr").find("td:eq(4)").html(realCalc);
});
Ответ №2:
Самая большая проблема с вашим кодом заключается в том, что у вас все HTML-элементы с одинаковым идентификатором, что неверно. Я обновил его, и вы можете получить последнюю версию здесь:http://jsfiddle.net/RzBeM/92 /
Код становится чем-то вроде:
$("#amazon5-id-sb5").keyup(function() {
//card
var quantity = $(this).val();
var howMany = parseInt($("#amazon5-id-sb6").val());
var subTotal = quantity * howMany;
//real value
var realValue = parseInt($("#amazon5-id-sb8").val());
var realTotal = quantity * realValue;
//assign subTotal to the td0
$("#amazon5-id-sb7").html(subTotal);
$("#amazon5-id-sb9").html(realTotal);
});