2013-07-19 3 views
3

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

У меня есть форма для продукта

У меня есть опции, установленные с суммой количества. (Small, Med, Large, XL)

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

Я пытался писать простой сценарий, основанный на другом посте я прочитал

$("input.Qty").keyup(function(){ 
    sumValues(); 
}); 

function sumValues() { 
    var sum = 0; 

    $("input.Qty").each(function(){ 
     var $this = $(this); 
     var amount = parseInt($this.val(), 1); 
     sum += amount === "" || isNaN(amount)? 0 : amount; 
    }); 

    $("#qtybox").text(sum); 
} 

$(function() { 

    sumValues(); 

}); 

на основе всего, что я читал, кажется, что используя метод KeyUp является простым подходом. Любые идеи или мысли?

+3

'ParseInt ($ this.val(), 1);' выглядит неправильно. Вы имели в виду 'parseInt ($ this.val(), 10);' вместо этого? – techfoobar

+2

«новичок на Java»>. Amadan

+0

@techfoobar, да 10 было правильным значением в моем коде. – Josh

ответ

3
parseInt($this.val(), 1); 
         ^---- You are using the wrong radix 

должен быть

parseInt($this.val(), 10); 

Другим вопросом, может быть, что вы связывание события вне готового обработчика DOM. Таким образом, возможно, что элементы были недоступны в момент привязки событий. Попробуйте перейти в внутри DOM ready handler

Check Fiddle

$(function() { 
    $("input.Qty").keyup(function() { 
     sumValues(); 
    }).keyup(); 
}); 

function sumValues() { 
    var sum = 0; 

    $("input.Qty").each(function() { 
     var $this = $(this); 
     var amount = parseInt($this.val(), 10); 
     sum += amount === "" || isNaN(amount) ? 0 : amount; 
    }); 

    $("#qtybox").text(sum); 
} 
+0

Хорошо, даже с изменением я не получил обновления. Поскольку каждый вариант имеет определенный ID, возможно, это может быть причиной? Josh

+0

' id' не имеет к этому никакого отношения, поскольку вы выбираете их с помощью класса. –

+0

Похоже, что ваш селектор ошибочен в первую очередь. Входы имеют класс 'qty', а не' Qty'. Селекторы чувствительны к регистру. '

0
function sumValues() { 
    var sum = 0; 

    $("input.Qty").each(function() { 
     sum += parseInt(this.value, 10); 
    }); 

    $("#qtybox").text(sum); 
} 

$(function() { 
    $("input.Qty").on('keyup', sumValues).trigger('keyup'); 
}); 
+0

Спасибо. Я не пробовал использовать .trigger ('keyup') – Josh

Смежные вопросы