如果用户输入错误值,如何在我的货币转换器中输出错误消息?

时间:2017-05-18 17:24:19

标签: javascript

我想知道如果他们输入一个特殊的符号,例如"#"我会输出一条错误信息告诉用户输入整数或十进制数。或者是我的货币转换程序金额的字母。

Codepen

JAVASCRIPT

// Fetch exchange rate data from api
$.getJSON("https://api.fixer.io/latest?base=ZAR", function(data) {
  var currencies = [];
  $.each(data.rates, function(currency, rate) {
    // Currency options dropdown menu
    currencies.push("<option id='" + currency.toLowerCase() + "' value='" + rate + "' >" + currency + "</option>");
  });
  $(".currency-list").append(currencies);
})

//Calculate and output the new amount
function exchangeCurrency() {
  var amount = $(".amount").val();
  var rateFrom = $(".currency-list")[0].value;
  var rateTo = $(".currency-list")[1].value;
  if (amount == undefined || rateFrom == "--Select--" || rateTo == "--Select--") {
    $(".results").html("0");
  } else {
    $(".results").html((amount * (rateTo * (1 / rateFrom))).toFixed(2));
  }
}

1 个答案:

答案 0 :(得分:0)

您可以使用许多JS方法之一(正则表达式,isNaN等)检查该数字是否有效(在其他检查之前),然后相应地显示或隐藏一些错误元素。对于某些边缘/特定情况,数字验证方法会有所不同,但仅使用“数字”字段可以防止大多数错误输入: pen

//Calculate and output the new amount
function exchangeCurrency() {
  var amount = $(".amount").val();
  var rateFrom = $(".currency-list")[0].value;
  var rateTo = $(".currency-list")[1].value;
  if ((amount - 0) != amount || (''+amount).trim().length == 0) {
    $(".results").html("0");
    $(".error").show()
  } else {
    $(".error").hide()
    if (amount == undefined || rateFrom == "--Select--" || rateTo == "--Select--") {
      $(".results").html("0");

    } else {
      $(".results").html((amount * (rateTo * (1 / rateFrom))).toFixed(2));
    }
  }
}