将两个文本框值相乘并在php,jquery中的第三个文本框中显示结果

时间:2013-05-24 12:15:20

标签: php jquery

我有动态生成文本框的代码。我想将数量和速率文本框的值相乘,并在总文本框中显示结果并将其发布到下一页。

小提琴http://jsfiddle.net/hEByw/,显示如何动态生成文本框。

我尝试了以下部分代码来将两个文本框值相乘,但它对我不起作用。请查看完整代码的小提琴。

    //To multiply two textbox values
      $('#qty + counter + ').keyup(calculate);
      $('#rates + counter + ').keyup(calculate);
      function calculate(e)
    {
       $('#total + counter + ').val($('#qty + counter +').val() * $('#rates +         counter+').val());
    }

任何人都可以建议我哪里出错或者正确的做法。我是jquery的新手。任何帮助表示赞赏。谢谢。

3 个答案:

答案 0 :(得分:0)

我认为问题出在这里

$('#rates + counter + ')

应该

$('#rates' + counter)

编辑:

我用jsfiddle分析了它,但问题在于你的逻辑。当你按一个键时,如何获得计数器。将使用计数器,一旦添加控件,它将不确定。

编辑2:

最后我想出了答案。 我不得不调整一下,但我希望它会让你满意

选中此JsFiddle Link

很抱歉编辑自己的链接

我刚刚添加了一个title属性,我用它来代替计数器变量。

e.target.title For the counter

title = '+ counter + ' in your HTml

请参阅链接。希望这可以帮助你

答案 1 :(得分:0)

只要您使用的是jquery 1.4 +:

$('#qty' + counter).live('keyup', function(){ calculate(counter); });
$('#rates' + counter).live('keyup', function(){ calculate(counter); });

function calculate(counter)
{
    total = Number($('#qty' + counter).val())*Number($('#rates' + counter).val())'
    $('#total' + counter).val(total);
}

答案 2 :(得分:0)

当事件触发时,你永远不会知道反击的价值。

$('#qty' + counter).on("blur", function() {
    calculate($(this));
});
$('#rates' + counter).on("blur", function() {
    calculate($(this)); 
});

function calculate(el) {
var counter = el.attr("id").indexOf("qty") != -1 ? el.attr("id").substring(3) : el.attr("id").substring(5);
var qty = isNaN(parseInt($('#qty' + counter).val())) ? 0 : parseInt($('#qty' + counter).val());
var rate = isNaN(parseInt($('#rates' + counter).val())) ? 0 : parseInt($('#rates' + counter).val());
$("#total" + counter).val(qty * rate);

}