年龄函数的价格折扣

时间:2013-06-08 19:52:33

标签: javascript forms html-select equation

我目前有一项任务,我必须创建一个表格来订购东西。例如一张报纸。我差不多完成了,但有一些我真的无法想象的事情。

我有一份出生日期的下拉列表;它按日,月和年设定。我需要这样做,以便当您在20岁以下并订购时,总价格乘以0.9(价格的10%)。

到目前为止,这是我的代码(带有精简的下拉列表):

<select name="select1" onClick="TheFunction()" size="1">
    <option>- Date -</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>

 </select>

 <select name=”select2” onClick="TheFunction()" size="1">
    <option>- Month -</option>
    <option value="1">Januari</option>
    <option value="2">Februari</option>
    <option value="3">Mars</option>
    <option value="4">April</option>
    <option value="5">Maj</option>
    <option value="6">Juni</option>
    <option value="7">Juli</option>
    <option value="8">Augusti</option>
    <option value="9">September</option>
    <option value="10">Oktober</option>
    <option value="11">November</option>
    <option value="12">December</option>

 </select>

 <select name=”select3” onClick="TheFunction()" size="1">
    <option>- Year -</option>
    <option value="2011">2011</option>
    <option value="2010">2010</option>
    <option value="2009">2009</option>
    <option value="2008">2008</option>
    <option value="2007">2007</option>
    <option value="2006">2006</option>
</select>

我的想法是让“年”是“计数”的选项列表,例如如果你在1993年之前出生,你将支付全价,但如果你出生后你将获得折扣。在这个列表中,我们可以说2008年,因为它缩短了。

如果有任何方法可以使用确切的日期来做到这一点,当然会更好。

这是剧本:

function TheFunction() {

    if (document.formular.select.select3.value >= 1993) {

        price = priceOne() + priceTwo() + priceThree()
        priceDiscount = (price)*(0.9);

    } else {

        price = priceOne() + priceTwo() + priceThree()
        priceDiscount = price;

    }

    document.formular.priset.value = priceDiscount

}

我用我的母语(瑞典语)翻译了它,我可能错过了一些东西。

所以这就是我认为的“方式”。但我正在寻找任何解决方案来解决这个问题,这不是初学者的联盟。

建议?

3 个答案:

答案 0 :(得分:2)

使用以下功能代替您的功能:

function TheFunction()

        {

             var d = new Date();
             if (d.getFullYear()-document.formular.select.select3.value >= 20){

              price = priceOne() + priceTwo() + priceThree()
              priceDiscount = (price)*(0.9);

              }

             else{
                    price = priceOne() + priceTwo() + priceThree()
            priceDiscount = price;

              }

              document.formular.priset.value = priceDiscount

                }

答案 1 :(得分:0)

表单控件值是文本,因此您应首先将它们转换为数字:

var yr = parseInt(document.formular.select.select3.value, 10);

但我怀疑你应该删除'select'这个词。我没有测试过,但AFAIK不会引用所有'select'元素。

答案 2 :(得分:0)

最好给出你的选择ID;这些可以和他们的名字一样。

var yr = document.getElementById('select3').value; // then 
yr = parseInt(yr, 10); 

转换为数字。对3个选项中的每个选项执行此操作,然后您可以将这三个数字转换为日期值:

var dob = new Date(yr, mth, dy);

然后执行您需要的计算。

Mozilla - Date