在变量内添加两个输入

时间:2014-01-09 12:04:38

标签: jquery math var

那天,

我不确定我究竟能做到这一点。这里有一些代码可以提供一些上下文。

// API dictionary
$(document).ready(function(){

    var itemNameTitle = 'Task'
    var itemQtyTitle = 'Quantity'
    var itemRateTitle = 'Rate <span>($/hr)</span>'
    var itemPriceTitle = 'Price <span>($)</span>'
    var itemNameInput = '<input type="text" name="item-name-input" value="Mockups">'
    var itemQtyInput = '<input type="text" name="item-qty-input" value="1">'
    var itemRateInput = '<input type="text" name="item-rate-input" value="35">'
    var itemPriceCalc = 128 / 2

    $('#page').load('templates/default.html', function() {

            $this = $(this);
            $this.html($this.html().replace('%item-name-title%',itemNameTitle));
            $this.html($this.html().replace('%item-qty-title%',itemQtyTitle));
            $this.html($this.html().replace('%item-rate-title%',itemRateTitle));
            $this.html($this.html().replace('%item-price-title%',itemPriceTitle));
            $this.html($this.html().replace('%item-name-input%',itemNameInput));
            $this.html($this.html().replace('%item-qty-input%',itemQtyInput));
            $this.html($this.html().replace('%item-rate-input%',itemRateInput));
            $this.html($this.html().replace('%item-price-calc%',itemPriceCalc));

    });

});

我希望你能看到我在这里要做的事情。基本上我需要将valueitemQtyInput itemRateInput相乘,然后发布到页面上的div。不幸的是,当我这样做时,它最终会发布'NaN'。

任何人都知道我做错了什么?

5 个答案:

答案 0 :(得分:3)

一旦页面中存在这些元素(因此,在$("#page").load回调之后),您可以像这样获取jQuery对象:

var $qty  = $("input[name=item-qty-input]");
var $rate = $("input[name=item-rate-input]");

然后,您可以通过.val获取它们的值,并将这些字符串解析为十进制浮点数:

var qty  = parseFloat($qty.val()); // Or a whole number: parseInt($qty.val(), 10)
var rate = parseFloat($rate.val());

然后,当然,划分(或乘以或添加或你正在尝试做的任何事情):

var itemPriceCalc = rate / qty; // Or + or *

通常,您会等到用户事件执行此操作,但我不太确定您的页面是什么。

答案 1 :(得分:1)

试试这个......我试过这个...它正在运作......

    $(document).ready(function () {
                var itemQtyInput = '<input type="text" name="item-qty-input" value="1">'
                var itemRateInput = '<input type="text" name="item-rate-input" value="35">'
                var itemPriceCalc = parseFloat(parseInt($(itemRateInput).val()) / parseInt($(itemQtyInput).val()));

                alert(itemPriceCalc);
                $('div').val(itemPriceCalc);
            });

答案 2 :(得分:0)

  

String / String =非数字

希望这是有道理的:

var value1 = document.getElementById('input1').value;
var value2 = document.getElementById('input1').value;

// parseInt converts the string to a integer
var result = parseInt(value1) / parseInt(value2);  

答案 3 :(得分:0)

Here is a working example

您不希望将文字标记放入变量中。您想要引用所谓的选择器:

var itemQtyInput = $('input[name="item-qty-input"]').val();
var itemRateInput = $('input[name="item-rate-input"]').val();
var itemPriceCalc = itemRateInput / itemQtyInput;
alert(itemPriceCalc);

这种效果应该有效。希望这有帮助!

答案 4 :(得分:0)

这是jQuery的方式来做你想要的:

var qty = parseInt($("input[name=item-qty-input]").val(), 10);
var rate = parseInt($("input[name=item-rate-input]").val(), 10);
var product = qty * rate;
$("#resultDiv").text(product);