这些是我的代码。我不知道为什么我一直得到NaN?请帮我解决这个问题。我的文本框值来自一个下拉列表,无论用户选择什么,文本框中都会显示相应的值,这就是我使用value=""
的原因我不知道它是否是我错误的部分。请告诉我如何处理这个NaN。
JS
function subtotal(){
var as = $("#as").val();
var txt1 = $('#sff').val();
var txt2 = $('#osf').val();
var d = 0;
var e = 0;
var f = 0;
var g = 0;
var a = parseFloat(as, 10);
var b = parseFloat(txt1, 10);
var c = parseFloat(txt2, 10);
if ($('#cbx3').is(":checked")) {
d = parseFloat($("#cbx3").val(), 10);
}
if ($('#cbx4').is(":checked")) {
e = parseFloat($("#cbx4").val(), 10);
}
if ($('#cbx5').is(":checked")) {
f = parseFloat($("#cbx5").val(), 10);
}
if ($('#cbx6').is(":checked")) {
g = parseFloat($("#cbx6").val(), 10);
}
var total = a + b + c + d + e + f + g;
$('#st').val(total.toFixed(2));
}
function grandtotal(){
var x = document.getElementById("st").value;
var y = document.getElementById("shppng").value;
var sum = parseFloat(x, 10)+ parseFloat(y, 10);
$("#gt").val(sum.toFixed(2));
HTML
<input type="text" id="sff" placeholder="$0.00" value="" style="float:left;"/>
<input type="text" id="osf" placeholder="$0.00" value="" style="float:left;"/>
<select id="as" style="margin: 3px 0 0 55px; width:48%; position: absolute; float: left;">
<option value="99.00">$99.00/</option>
<option value="178.20">$178.20</option>
<option value="241.56">$241.56</option>
<option value="292.24">$292.24</option>
<option value="332.80">$332.80</option>
</select>
<input type="checkbox" id="cbx4" value="69.00"/>
<input type="checkbox" id="cbx5" value="35.00"/>
input type="checkbox" id="cbx6" value="39.00"/>
答案 0 :(得分:3)
指定默认值。
<input type="text" id="sff" placeholder="$0.00" value="0" style="float:left;"/>
<input type="text" id="osf" placeholder="$0.00" value="0" style="float:left;"/>
答案 1 :(得分:0)
a
,b
或c
的值可以为空
function subtotal() {
var as = $("#as").val();
var txt1 = $('#sff').val();
var txt2 = $('#osf').val();
var d = 0;
var e = 0;
var f = 0;
var g = 0;
var a = parseFloat(as, 10) || 0;
var b = parseFloat(txt1, 10) || 0;
var c = parseFloat(txt2, 10) || 0;
if ($('#cbx3').is(":checked")) {
d = parseFloat($("#cbx3").val(), 10);
}
if ($('#cbx4').is(":checked")) {
e = parseFloat($("#cbx4").val(), 10);
}
if ($('#cbx5').is(":checked")) {
f = parseFloat($("#cbx5").val(), 10);
}
if ($('#cbx6').is(":checked")) {
g = parseFloat($("#cbx6").val(), 10);
}
var total = a + b + c + d + e + f + g;
$('#st').val(total.toFixed(2));
}
function grandtotal() {
var x = document.getElementById("st").value;
var y = document.getElementById("shppng").value;
var sum = parseFloat(x, 10) + parseFloat(y, 10);
$("#gt").val(sum.toFixed(2));
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="sff" placeholder="$0.00" value="" style="float:left;" />
<input type="text" id="osf" placeholder="$0.00" value="" style="float:left;" />
<select id="as">
<option value="99.00">$99.00/</option>
<option value="178.20">$178.20</option>
<option value="241.56">$241.56</option>
<option value="292.24">$292.24</option>
<option value="332.80">$332.80</option>
</select>
<input type="checkbox" id="cbx4" value="69.00" />
<input type="checkbox" id="cbx5" value="35.00" />
<input type="checkbox" id="cbx6" value="39.00" />
<br />
<input id="st" />
<input id="gt" />
<br />
<input type="button" value="Total" onclick="subtotal(); grandtotal();" />
&#13;