如何在jquery中获取textbox的当前值

时间:2011-01-11 07:39:08

标签: php javascript jquery

我正在尝试计算2个给定值数量和价格的值。我在jquery中使用了keyup事件来计算数量和价格的当前值的总和。 我如何能够引用启动按键事件的当前文本框。并将相应的总数放入指定的框中 你知道任何jquery插件会让我更容易实现结果。

         

<script type="text/javascript">
$(function(){

$('input[name^=qty]').keyup(function(){

    var curprice=$('input[name^=price]').val();
    var curqty=$('input[name^=qty]').val();
    var curtotal=curprice * curqty;

    $('input[name^=comp]').val(curtotal);
});




});

</script>

</head>
<body>




<?php
for($a=0;$a<=5;$a++){
    ?>


    Price:<input type="text" name="<?php echo 'price'.$a; ?>" value="<?php echo $a; ?>"/>
    Quantity:<input type="text" name="<?php echo 'qty'.$a; ?>" value="<?php echo $a; ?>"/>
    Computed:<input type="text" id="<?php echo 'a'.$a; ?>" name="<?php echo 'comp'.$a ?>" value="" />


    <?php
echo "<br/>";
}

?>




</body>
</html>

这是截图。 alt text

如果您需要更多详细信息,请随时提出,谢谢。

2 个答案:

答案 0 :(得分:1)

<script type="text/javascript">
$(function(){

$('input[name^=qty]').keyup(function(){

    var parentDiv = $(this).closest('div');
    var curprice=parentDiv.find('input[name^=price]').val();
    var curqty= this.value;
    var curtotal=curprice * curqty;

    parentDiv.find('input[name^=comp]').val(curtotal);
});




});

</script>

</head>
<body>




<?php
for($a=0;$a<=5;$a++){
    ?>

    <div>

    Price:<input type="text" name="<?php echo 'price'.$a; ?>" value="<?php echo $a; ?>"/>
    Quantity:<input type="text" name="<?php echo 'qty'.$a; ?>" value="<?php echo $a; ?>"/>
    Computed:<input type="text" id="<?php echo 'a'.$a; ?>" name="<?php echo 'comp'.$a ?>" value="" />

    </div>
    <?php
echo "<br/>";
}

?>




</body>
</html>

注意您当前代码的所有更改。

答案 1 :(得分:1)

这是其他的东西。它使用正则表达式来获取元素名称的数字部分,并假设名为priceX和compX的东西是相关的输入。

$("input[name^=qty]").keyup(function() {

    var i = /^qty(\d+)$/.exec($(this).attr('name'))[1],
        price = parseFloat($("input[name=price" + i + "]").val()),
        qty = parseInt($("input[name=qty" + i + "]").val(), 10);

    $("input[name=comp" + i + "]").val(price * qty);

});

示例:http://jsfiddle.net/AHUHu/