jQuery更改文本框值不起作用

时间:2015-04-21 13:47:06

标签: javascript jquery java-ee

我试图通过将sum值(用户输入的值)乘以qtyTxt来显示price标签中的总价。但它不起作用,永远不会达到if语句。

<input type="text" name="qtyTxt" value="1" size="2" style="width: 25px"/>
<label id="price">${adClicked.price}</label>
<label id="sum">${adClicked.price}</label>
<input type="hidden" name="id" value="${adClicked.id}"/>

<script>
$(".qtyTxt").bind('change', function () {
    var sum=$(("#price").val())* ($(this).val());
    $("#sum").val('Rs.'+sum);
});
</script>

控制台中没有错误,$("#sum").val('Rs.'+sum);工作正常。

2 个答案:

答案 0 :(得分:2)

1)使用parseInt()parseFloat() parseInt()函数解析字符串并返回整数。

2)另一个错误不要将val()用于标签而不是使用text()作为标签

var sum= parseInt($("#price").text() , 10) * parseInt($(this).val() ,10);

代码

$(".qtyTxt").bind('change', function () {
  var sum= parseInt($("#price").text() , 10) * parseInt($(this).val() ,10);
   $("#sum").text('Rs.'+sum);
});

答案 1 :(得分:0)

两个问题:

1)您的代码中存在错误,$(("#price").val())应为$("#price").text()$("#price").html()

2)您需要在进行数学计算之前解析值:

var sum=parseInt($("#price").text(),10)*parseInt($(this).val(),10) ;