获取输入框的值,计算出的支付费用

在实践过程中,设计一个获取输入框的值,然后计算所需支付费用时,计算出来的费用总是不对。

如下图所示,是页面初始化完成的界面:


”支付费用“ 就是我们需要根据 “红包总额” 和“红包个数”计算出的值。

”支付费用“的计算规则是:若红包个数小于上限个数:费用=红包总额;若红包个数大于上限个数:

费用 = 红包总额+(红包个数-上限个数)*0.1

jquery代码如下:

        // 监听红包总额输入框值变化事件
	$('#totalFee').on('input',function(e){
		//获取红包总额
		totalFee = $('#totalFee').val();
		//计算支付费用
		countPayFee();
	});

	// 监听红包个数输入框值变化
	$('#redBagNum').on('input',function(e){
		//在改变红包个数之前,要先输入红包总额
		if( $('#totalFee').val() == undefined || $('#totalFee').val() == '' || $('#totalFee').val() == null ){
			error_prompt_alert('请先输入红包总额');
			return;
		}
		redBagCount = $('#redBagNum').val();
		//计算支付费用
		countPayFee();
	});

    // 计算支付费用
    function countPayFee(){
    	if(redBagCount <= upLimiteNum){
			pay = totalFee;
		}else{
			console.log(totalFee);
			pay = totalFee + (redBagCount - upLimiteNum) * 0.1;
		}
		$('#payFee').text(pay);
    }

当红包总额输入框值变化或者红包个数输入框值变化时都要重新计算一遍支付费用,即函数ountPayFee();
显示效果如下:

从上面可以看出计算结果不正确,因为红包总额10,红包个数31,那么支付费用应该是10.1元,才正确

出错原因:1、获取到输入框的值是字符串,即 totalFee = $('#totalFee').val();这里toyalFee保存的是一个字符串
          2、同样redBagCount = $('#redBagNum').val(); redBagCount 保存的是一个字符串。

          好,当我们利用公式计算费用时,即
          pay = totalFee + (redBagCount - upLimiteNum) * 0.1;
          因为totalFee是字符串,redBagCount是字符串,根据js加法规则,这里是对字符串的拼接,而不是加法运算



解决方法:将pay = totalFee + (redBagCount - upLimiteNum) * 0.1;改成

                  pay = parseFloat(totalFee) + (parseFloat(redBagCount) - parseFloat(upLimiteNum)) * 0.1;

                  即将值为字符串改成float类型。

                  


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值