2

我正在开发一个费率模块,计算他们使用电话卡获得的分钟数。例如,拨打南非的费用为每分钟 0.015。我想执行以下数学运算:

南非 * 分钟。或者在这种情况下:0.015*200 并因此获得 3 美元。

我的问题是:我是否将以下值放入:

代码版本 1:HTML:

   <option value="0.015">South Africa</option>

JS:

   var inputCountries =$('#CountryName').val();
   var inputMinutes = $('#minutes').val();
   var result = parseInt(inputMinutes)*parseFloat(inputCountries);

代码版本 2:HTML:

    <option value="SouthAfrica">South Africa</option>

JS:

    var SouthAfrica = 0.015;
    var inputCountries =$('#CountryName').val();
    var inputMinutes = $('#minutes').val();
    var result = parseInt(inputMinutes)*parseFloat(inputCountries);

代码版本 3:HTML:

    <option value="SouthAfrica">South Africa</option>

JS:

    var inputCountries =$('#CountryName').val(
           SouthAfrica = 0.015;
      );
    var inputMinutes = $('#minutes').val();
    var result = parseInt(inputMinutes)*parseFloat(inputCountries);

这是我的第一个 JavaScript 项目,我边走边学,所以我会很感激任何资源来解释为什么上面的代码工作/不工作。这是我的其余代码供参考。

注意:请不要更正我的代码的其余部分,我仍在研究和学习。但是,非常感谢您提供任何用于找出其余代码的提示或资源。我这个话题的重点是分配每个国家的价值。我试图弄清楚如何使用几种不同的资源来解决这个问题,但是却一无所获。感谢您的时间!

HTML:

    <form name="calculator">
    <!--
    Countries
    -->
    <label><span><!--[Write as something else]-->Where do you want to call?</span>
    </label>

    <select id="CountryName" class="rates">
    <option>Select...</option>
    <option value=" ?? ">South Africa</option <!--This list is truncated to keep the post short-->
    </select>
    <label>Minutes to call</label>
    <input id="minutes" type="text" class="rates" /><br />

    <input type="button" name="submit" id="submit" value="Submit" />

    <input type="button" name="clear" id="clear" value="Clear" />
    <br />
    </form>
    <div id="RatesResult">
    <p>
    <span id="total"></span> for 
    <span id="afterMin"></span> minutes. <!--This section, #afterMin, is still being worked on, any hint/resources on how to print what user wrote in #minutes into this section would be appreciated -->

    </p><br />
    </div>
    </div>

JS:

       $(document).ready(function() {
    $('#submit').submit(function() {
 var total = 0;
     var SouthAfrica = 0.015, Canada = 0.015 ; //truncated list             
    var inputCountries =$('#CountryName').val();
var inputMinutes = $('#minutes').val();
var result = parseInt(inputMinutes)*parseFloat(inputCountries);
$('#total').html(formatCurrency(result));
        });
   });
4

2 回答 2

1

对您来说,最简单的答案是创建一个像这样的对象:(请注意,javascript 中的所有对象实际上都是 hashmaps/dictionary<string,value>类型。

var rates = {
  'SouthAfrica': 0.0015,
  'USA' : 0.0001,
  .....
  'France' : 0.0005
}

//HTML
<option value="SouthAfrica">South Africa</option>
<option value="USA">United States of America</option>

然后,当您从选择中获取 val 时,就像$('#CountryName').val();您可以对 rates 对象进行查找一样,如下所示:

var countrySelected = $('#CountryName').val();
var rate = rates[countrySelected];
于 2012-06-19T15:54:09.033 回答
1

我建议您将汇率(所以 0.015)作为下拉列表中的值:

<select id="CountryName" class="rates">
    <option value="-1">Select...</option>
    <option value="0.015">South Africa</option 
</select>

然后,您将使用下拉列表中的选定值执行简单的计算(如您所述)。我建议像在我的示例中那样添加 -1 值,然后您可以测试以确保他们选择了大于或等于零的值(您可能有一个免费的国家/地区,即 0)。

于 2012-06-19T15:55:31.750 回答