Javascript JS变量未过帐
我有一段JavaScript代码,它可以更改字段值,并且可以正常用于HTML输出Javascript JS变量未过帐,javascript,php,Javascript,Php,我有一段JavaScript代码,它可以更改字段值,并且可以正常用于HTML输出 <script> var basePrice = 10; $(".vars").change(function() { newPrice = basePrice; $('.vars option:selected').each(function() { newPrice += $(this).data('price') }); $('#item-price').html(newPrice)
<script>
var basePrice = 10;
$(".vars").change(function() {
newPrice = basePrice;
$('.vars option:selected').each(function() {
newPrice += $(this).data('price')
});
$('#item-price').html(newPrice);
});
</script>
var基准价格=10;
$(“.vars”).change(函数(){
新价格=基准价格;
$('.vars选项:选中')。每个(函数(){
newPrice+=$(此).data('price'))
});
$(“#项目价格”).html(新价格);
});
我还有一个表单,可以将数据发布到另一个php页面,该页面也可以正常工作,只有#item price var没有发布。我几乎可以肯定我的字段命名正确,如下所示
<input type="hidden" name="product_amount" id="item-price" value="">
有人能帮忙吗?输入字段不使用.html(),而是使用.val() 另外,您可能需要初始化newPrice变量
var newPrice = basePrice;
此外,正如Brent提到的,您可能希望使用或将字符串数据值转换为可用的数字
newPrice += parseFloat($(this).data('price'));
此外,我认为您需要对“newPrice+=$(this).data('price')”进行数字转换,以便实际添加它们,否则它将只执行字符串concat(尽管我可能错了)。您是对的。数据值将是一个字符串,所以parseInt将用于转换整数,或用于转换小数的parseFloat,如2.95
newPrice += parseFloat($(this).data('price'));