2015-05-29 2 views
1

мои расчеты не работают достаточно хорошо. Может быть, вы можете мне помочь:умножители с входными значениями в jQuery

<input id="count" min="1" value="1" class ="txtMult form-control" type="number" name="txtEmmail" /> 
    <input type="text" value="250" class ="txtMult" name="txtEmmail"/> 
    <span class="multTotal">250</span> 

<select class="selectpicker"> 
<option value="1">multiply with 1</option> 
<option value="2">multiply with 2</option> 
</select> 

<span id="grandTotal">250</span> 

И здесь Javascript:

$(function(){ 
       $('input').change(function(){ 
        var p=$(this).parent().parent() 
        var m=p.find('input.txtMult') 
        var mul=parseInt($(m[0]).val()*$(m[1]).val()).toFixed(2) 
        var res=p.find('.multTotal') 
        res.html(mul); 
        var total=0; 
        $('.multTotal').each(function(){ 
         total+=parseInt($(this).html()) 
        }) 
        $('#grandTotal').html(parseInt(total).toFixed(2)) 
       }); 
      }) 


$(window).load(function(){ 
$('select').change(function() { 
    $("#grandTotal").html($('select').val()*$('.multTotal').html()) 
}); 
}); 
</script> 

Поэтому я хотел бы пожелать, чтобы #grandTotal постоянно меняется вправо. Если выбрать, например, «умножить на 2», а после изменения значения «#count» «#grandTotal» должен автоматически отобразить правильный номер. Я так запутался в расчете. Может быть, вы видите это яснее. Большое спасибо

+0

В чем причина неправильного расчета или события изменения не работает. – Anil

ответ

1

Работа скрипку http://jsfiddle.net/anilk/6fLk8w8a/1/

обновленный JS

$(function(){ 
       $('.txtMult').change(function(){ 
        alert("work"); 
        var p=$(this).parent().parent() 
        var m=p.find('input.txtMult') 
        var mul=parseInt($(m[0]).val()*$(m[1]).val()).toFixed(2) 
        var res=p.find('.multTotal') 
        res.html(mul); 
        var total=0; 
        $('.multTotal').each(function(){ 
         total+=parseInt($(this).html()); 
        }) 
        alert(parseInt(total).toFixed(2)); 
        $('#grandTotal').html(parseInt(total).toFixed(2)); 
       }); 
      }) 



$('.selectpicker').change(function() { 
    calcVal(); 
}); 

function calcVal(){ 
    alert($('select').val()*$('.multTotal').html()); 
    $("#grandTotal").html($('select').val()*$('.multTotal').html()) 
} 

// call on document load 
calcVal(); 

Ваше связывание не было собственно использовать собственный класс.

+0

Спасибо вам большое! Это сработало хорошо! – fala

0

при вычислении на стороне javascript вам нужно разобрать как int или float.

Вы можете использовать parseInt или parseFloat()

var i = parseInt($('select').val()) * parseInt($('.multTotal').html()) 
$("#grandTotal").html(i); 
Смежные вопросы