вычислить данные из массива - PullRequest
0 голосов
/ 21 июля 2011

У меня есть этот (простой) вопрос относительно массива. Я пытаюсь получить сумму всех досок, которые были введены в HTML. Вот пример кода: нажмите здесь

(спасибо AsKaiser за этот код).

Теперь я хочу, чтобы каждый раз, когда я нажимал кнопку go, он автоматически вычислял общее количество футов доски, которое было введено в этот массив. Таким образом, каждый раз, когда я вводю что-то в эту форму и нажимаю кнопку «Перейти», данные поступают в этот массив, и в поле ввода ниже отображается общее количество всех футов доски. Он будет постоянно меняться по мере добавления данных в мой массив.

Я не могу заставить его работать, и у меня всегда есть значение NaN для всего.

Ответы [ 3 ]

1 голос
/ 21 июля 2011

Ваш код очень запутанный.Какой смысл в plank_data?

Почему бы вам не сделать это вместо этого, это имеет больше смысла.

function Plank()
{
  var self = this;
  self.Number = 0;
  self.Thickness = 0;
  self.Width = 0;
  self.Length = 0;
  self.Quantity = 0;

  self.GetBoardFoot = function()
  {
    return (((parseFloat(self.Thickness) * parseFloat(self.Width) * parseFloat(self.Length) * parseFloat(self.Quantity)) / 12);
  }
}

var planks = [];
function AddPlank()
{
  var myPlank = new Plank();
  myPlank.Number = $('#plank_number').val();
  myPlank.Thickness = $('#thickness').val();
  myPlank.Width = $('#width').val();
  myPlank.Length = $('#length_t').val();
  myPlank.Quantity = $('#quantity').val();
  planks.push(myPlank);
}

function GetTotalBoardPlank()
{
  var total = 0;
  for (var i = 0; i < planks.length; i++)
    total += planks[i].GetBoardFoot();
  return total;
}

function Go()
{
  AddPlank();
  $('#board_foot').val(parseFloat(GetTotalBoardPlank()));
}
0 голосов
/ 21 июля 2011

Это то, что вы ищете?

plank_data = [];
$('#go').click(function() {

    var plankNum = parseFloat($('#plank_number').val() || 0.00),
        thick = parseFloat($('#thickness').val() || 0.00),
        width = parseFloat($('#width').val() || 0.00),
        length_t = parseFloat($('#length_t').val() || 0.00),
        quantity = parseFloat($('#quantity').val() || 0.00);

    //compute board foot
    board_foot = parseFloat((thick * width * length_t * quantity) / 12);

    // show board foot
    $('#board_foot').val(board_foot);

    var current_data = {};

    $('#plank_form input:text:not("#board_foot")').each(function() {
        var $this = $(this);
        current_data[$this.attr('id')] = parseFloat($this.val() || 0.00);
        $this.val('');
    });

    //this will push data/add data to array
    plank_data.push(current_data);

    var total = parseFloat(plankNum + thick + width + length_t + quantity);
    $('#total').val(total);
});
0 голосов
/ 21 июля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...