2013-03-21 4 views
0

Я пытаюсь создать форму, которая принимает общий объем испрашиваемых продуктов, добавляет их вместе и затем основывается на общем количестве продуктов, выплевывает цену.Добавление переменных вместе, а затем их запуск через if/else

Это то, что я получил до сих пор:

/* shipping total */ 
var imShipping = function(){ 
var emy = parseInt($('#user_inputEm').val()); 
    if (isNaN(emy)) emy = 0; 
var pri = parseInt($('#user_inputprin').val()); 
    if (isNaN(pri)) pri = 0; 
var glo = parseInt($('#user_inputglow').val()); 
    if (isNaN(glo)) glo = 0; 
var deb = parseInt($('#user_inputdeb').val()); 
    if (isNaN(deb)) deb = 0; 
var shitotal = parseInt($('thisValue').val(emy + pri + glo + deb)); 
    var sifunc = function(i){ 
    var any; 
     if(i = 100){ 
     return any = 30; 
     }else if(i = 200){ 
     return any = 50; 
     }else{ 
     return any = 60; 
     } 
    }; 
return $('#shipQuote2').text(sifunc(shitotal)); 
} 

здесь на jsfiddle.net http://jsfiddle.net/4cUhp/20/

Любая помощь будет большим.

Спасибо,

ответ

0
$('#user_inputEm, #user_inputprin, #user_inputglow, #user_inputdeb').on('change', function() { 
    $('#shipQuote2').text(function() { 
     var emy = parseInt(($('#user_inputEm').val() || 0), 10), 
      pri = parseInt(($('#user_inputprin').val() || 0), 10), 
      glo = parseInt(($('#user_inputglow').val() || 0), 10), 
      deb = parseInt(($('#user_inputdeb').val() || 0), 10), 

      shitotal = emy + pri + glo + deb; 

     if (shitotal = 100) { 
      return 30 
     }else if (shitotal = 200) { 
      return 50 
     }else{ 
      return 60; 
     } 
    }); 
}); 
+0

Это выглядит действительно хорошо adeneo. Я попытался добавить его, но он только показал первый оператор if «30» и не изменился, когда я ввел новое значение в поля запястья. – James

+0

@James - ваше условие if/else, конечно, работает только в том случае, если переменная точно равна 100 или 200, в противном случае она переходит к последней, и если переменная говорила 99 или 3, она всегда возвращала бы 60. Также это работает только один раз если он не находится внутри обработчика событий, например keyup, change и т. д., где эта функция запускается каждый раз, когда значение некоторых изменений элемента и т. д. – adeneo

+0

Спасибо за быстрый ответ adeneo. Я понимаю, как работает оператор if else, но проблема в том, что по какой-то причине он возвращает 30, когда он должен возвращать 60. Будет ли обновление shitotal изменяться при вводе нового значения в любой из ID #user_input? – James

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