JavaScript для расчета общей стоимости? - PullRequest
0 голосов
/ 03 февраля 2012

У меня есть текстовое поле и 2 метки, одна из которых - «цена», а другая - «общая цена», они находятся в одном из столбцов в виде сетки.

Вид сетки привязан кТаблица базы данных под названием Product, в основном, она будет отображать список продуктов, и мне нужен javascript для расчета общей цены путем взятия цены * количество.

Я попробовал приведенный ниже код, но когда я ввел значение в текстовое поле, метка для изменения общей цены, но она влияет на каждую строку, а это не то, что я хочу.Как мне это изменить?

 $("[id*=txtQuantity]").live("change", function () {
               if (isNaN(parseInt($(this).val()))) {
                   $(this).val('0');
               } else {
                   $(this).val(parseInt($(this).val()).toString());
               }
           }).trigger("change");

           $("[id*=txtQuantity]").live("keyup", function () {
               if (!jQuery.trim($(this).val()) == '') {
                   if (!isNaN(parseFloat($(this).val()))) {
                       var row = $(this).closest("table");
                       $("[id*=lblTotalCost]", row).html(parseFloat($("[id*=price]", row).html()) * parseFloat($(this).val()));
                   }
               } else {
                   $(this).val('');
               }

           }).trigger("keyup");

1 Ответ

0 голосов
/ 03 февраля 2012

Не видя разметки, трудно сказать точно, но если вы скажете, что она хорошо меняет цену, но влияет только на слишком много строк, я бы посмотрел на селектор, который вы используете здесь:

var row = $(this).closest("table");
$("[id*=lblTotalCost]", row).html(parseFloat($("[id*=price]", row).html()) * parseFloat($(this).val()));

Переменная row представляет собой целую таблицу, и затем вы находите все, где идентификатор содержит lblTotalCost, похоже, что он возвращает все поля общей стоимости в таблице и устанавливает их все сразу.

Опять же, не видя разметки, трудно посоветовать, но, возможно, попробуйте изменить:

$(this).closest("table");

до:

$(this).closest("tr");

для ограничения объема кода после него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...