在<option>或.val()</option>中为国家/地区分配值

时间:2012-06-19 15:49:57

标签: javascript jquery

我正在开发一个费率模块,计算他们用电话卡花了多少分钟。对于exaple来说,打电话给南非的费用是每分钟0.015。我想进行以下数学运算:

SouthAfrica *分钟。或者在这种情况下: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项目,随着我的学习,所以我很感激任何来源解释为什么上面的代码工作/不起作用。以下是我的其余代码供参考。

注意:请不要更正我的代码的REST,我仍在研究和学习。但是,非常感谢任何提示或资源以找出其余的代码。我对这个主题的关注点是每个国家的分配价值。我试图弄清楚如何使用几种不同的资源来解决问题,但是空洞了。谢谢你的时间!

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));
        });
   });

2 个答案:

答案 0 :(得分: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>

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

var countrySelected = $('#CountryName').val();
var rate = rates[countrySelected];

答案 1 :(得分:1)

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

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

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