当其中一个输入字段为空时,将它们一起添加

时间:2014-05-01 00:25:41

标签: javascript jquery

我正在开发一个使用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);
});

2 个答案:

答案 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;)将是真的,这意味着它是非法的数字

希望这有帮助