我正在开发一个使用JavaScript的信用卡表单。
我的客户经常会向我发送比我收费更多的钱,所以为了让事情变得简单并防止我失去潜在的钱,我有一个Price
字段显示他们将会是计费。我现在添加了一个Tip
字段,允许他们添加到该价格。
这是我到目前为止的一些JavaScript / jQuery,当他们输入小费值时更新我的价格字段...
$('.price_tip').keyup(function() {
var tip = $('.price_tip').val();
var price = $('.price').val();
var total = parseInt(price) + parseInt(tip);
$('.price').val(total);
});
这几乎没有用,除非我从我的提示输入框中删除所有内容,然后我的总价格字段变为NaN。
我需要确保我的价格字段始终至少显示我向客户收费的情况,如果删除了小费值。
这是我可以使用一些帮助的地方吗?
更新
这是我最近的尝试,似乎有效,我可以从提示框中删除所有内容,而我的总价格字段现在不会转到NaN
。我确实发现了另一个问题,如果输入了非数字项目,那么它就会混乱。
我不确定如何确定它是一个数字值?
$('.price_tip').keyup(function() {
var tip = $('.price_tip').val();
if(tip < 1){
tip = 0;
}
var price = $('.price').val();
var total = parseInt(price) + parseInt(tip);
$('.price').val(total);
});
答案 0 :(得分:1)
当提示输入为空时,$('.price_tip').val()
返回空字符串,后续parseInt
返回NaN,添加数字和NaN,结果为NaN。
通过isNaN
检查parseInt的结果,并且仅当它是一个数字时才将其添加到total。如果它不是数字,您也会将其显示给用户,输入无效。
答案 1 :(得分:1)
您是否尝试过使用isNaN(variableName)函数?此函数将告诉您variableName的内容是否为非法数字。所以,
isNaN(&#34; 123&#34;)将为false,表示它不是非法号码 isNaN(&#34; 12/3&#34;)将是真的,这意味着它是非法的数字
希望这有帮助