1

我目前有一个任务,我必须创建一个用于订购东西的表格。例如报纸。我快完成了,但有几件事我真的想不通。

我有一个出生日期的下拉列表;它是按日、月和年设置的。当您未满 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

}

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

所以这就是我认为的“方式”。但我正在寻找任何解决方案来解决这个问题,这并没有超出初学者的范围。

建议?

4

3 回答 3

1

使用以下函数而不是您的函数:

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

                }
于 2013-06-08T20:20:27.230 回答
0

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

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

但我怀疑您应该删除“选择”一词。我还没有测试过,但这不会 AFAIK 引用所有“选择”元素。

于 2013-06-08T20:26:22.720 回答
0

最好提供您选择的 ID;这些可以与他们的名字相同。

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

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

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

然后执行您需要的计算。

Mozilla - 日期

于 2013-06-08T20:49:55.933 回答