javascript - 获取不是数字(NaN)错误 html/js

标签 javascript jquery html

首先单击单选按钮时出现 NaN 错误。该页面有一个 3 单选按钮,当我单击第一个按钮时,它说 NaN ,其余 2 个按钮没有响应

这是我的 HTML

<input type="hidden" name="totalamount" id="totalamount" value="<?php echo get_total_amount();?>" /

<input type="radio" name="rmr"  id="payment1" value="3" onclick="updatepayment(this.value)" />
<input type="radio" name="rmr"  id="payment2" value="5.5" onclick="updatepayment(this.value)" />
<input type="radio" name="rmr"  id="payment4" value="10" onclick="updatepayment(this.value)" />
<div id="finalamount">
</div>

我也提到了我的 JS

$(document).ready(function(){  
    $('input[name=rmr]').click(function () {  
        //make sure one is checked    
        if($('input[name=rmr]:checked').length > 0) {    
            $('#finalamount').html($("#totalamount").val() * $("input[name=rmr]:checked").val());    
        } 
    }); 
}); 

最佳答案

三件事:

1) 当您使用“totalamount”元素中的金额时,人们必须问:您确定

value="<?php echo get_total_amount();?>"

...正在输出有效数字?因为如果没有,那么代码

$('#finalamount').html($("#totalamount").val() * $("input[name=rmr]:checked").val());

...确实会导致NaN* 运算符将尝试将其两个操作数从字符串转换为数字,当然,如果该 PHP 代码输出的值不是有效数字(例如,如果它是“$0.00”或某事),转换结果将为 NaNNaN 乘以 anything 就是 NaN

This example “totalamount”元素中的无效金额会产生看起来与您所描述的行为非常相似的内容。 (该代码与您的代码不同,我做了一些非常简单的重构,请参见下文。但为了演示无效数字,这并不重要。)

2)问题文本中隐藏输入的末尾没有 > 。如果您直接复制粘贴,我想知道这是否会是问题所在?

3) 由于您使用的是 jQuery,因此不需要 onclick 属性。相反:

$(document).ready(function(){  
   $("input[name=rmr]").click(function(){
        var checked = $("input[name=rmr]:checked");
        updatePayment(this.value);
        if (checked.length > 0) { // make sure one is checked
        {    
            $("#finalamount").html( $("#totalamount").val() * checked.val() );    
        } 
    }); 
}); 

...假设您希望每次都调用 updatePayment

Live example

updatePayment 折叠到主要的 click 行为中可以避免 DOM0(onclick 属性)处理程序的顺序可能存在的任何问题和 DOM2 处理程序(与 jQuery 一起使用的处理程序)被调用。

关于javascript - 获取不是数字(NaN)错误 html/js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584244/

相关文章:

javascript - 如何兼顾 appcache.manifest、manifest.json 和 serviceworkers?

javascript - 从另一个坐标数组中过滤坐标数组

jquery - 尝试 "pin"可排序 jQuery <li>,意外行为

javascript - 更新输入数字变量 onclick

javascript - 根据背景颜色更改文本颜色

html - 改变 body 不是 HTML/CSS 标准吗?

javascript - 如何在域的所有页面上运行javascript脚本?

javascript - 为 svg :image 设置圆 Angular

javascript - 更改复选框时在 Google map 上设置标记

jquery - 使用 jQuery 选择嵌套 div