我目前有一项任务,我必须创建一个表格来订购东西。例如一张报纸。我差不多完成了,但有一些我真的无法想象的事情。
我有一份出生日期的下拉列表;它按日,月和年设定。我需要这样做,以便当您在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
}
我用我的母语(瑞典语)翻译了它,我可能错过了一些东西。
所以这就是我认为的“方式”。但我正在寻找任何解决方案来解决这个问题,这不是初学者的联盟。
建议?
答案 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);
然后执行您需要的计算。