我正在创建一个简单的计算器,用于计算一个月内剩余的天数。我有2个下拉列表。我已经宣布了变量和公式。现在,我只需要为变量赋值。我该怎么办?
<html>
<body>
<form>
What month ?
<select id="month">
<option selected disabled>Choose one</option>
<option>Jan</option>
<option>Feb</option>
...
<option>Oct</option>
<option>Nov</option>
<option>Dec</option>
</select>
What date?
<select id="date">
<option selected disabled>Choose one</option>
<option>1</option>
<option>2</option>
...
<option>29</option>
<option>30</option>
<option>31</option>
</select>
</form>
<script>
var result, finaldate, currentdate;
result = finaldate - currentdate;
document.write("There are "+result+" days left in this month.")
</script>
</body>
</html>
谢谢!
答案 0 :(得分:2)
请仔细阅读我对问题的实际解决方案的下一个答案......
你在这里缺少很多东西,首先是你的选项上的值,然后你需要一个触发器,一个按钮或每个下拉菜单改变。
然后,即使您获得了这些值,您尝试计算日期差异的方式也不会起作用。等式中需要更多变量和值。但回到你的问题,这是一个如何从select中获取值的例子:
<select id="month" onchange="setMonth()">
<option selected disabled>Choose one</option>
<option value="Jan">Jan</option>
<option value="Feb">Feb</option>
...
<option value="Oct">Oct</option>
<option value="Nov">Nov</option>
<option value="Dec">Dec</option>
</select>
然后创建设置变量的函数。这是一个例子,如果警报显示月份,那么你正在做正确的事。
<script>
var month;
function setMonth(){
month = document.getElementById('month').value;
alert(month);
}
</script>
var month;
function setMonth(){
month = document.getElementById('month').value;
alert(month);
}
<select id="month" onchange="setMonth()">
<option selected disabled>Choose one</option>
<option value="Jan">Jan</option>
<option value="Feb">Feb</option>
<option value="Oct">Oct</option>
<option value="Nov">Nov</option>
<option value="Dec">Dec</option>
</select>
答案 1 :(得分:2)
我刚刚注意到您对评论的解释,并且通过在所选月份添加正确的值,可以轻松解决此问题。
写出月份值的最大天数。 然后你的减法将起作用。添加一个触发该功能的按钮。
以下是几个月的操作方法(当天数与一个月内的最大天数不匹配时,您需要为案例添加验证,例如,如果用户选择31和2作为一个月!)
function calcDays(){
var monthDay = document.getElementById('month').value;
var day = document.getElementById('day').value;
var result = parseInt(monthDay) - parseInt(day);
alert("There are "+result+" days left in this month");
}
//parseInt() allows you to use input strings as integers
<select id="month" onchange="setMonth()">
<option selected disabled>Choose one</option>
<option value="31">Oct</option>
<option value="30">Nov</option>
</select>
<select id="day">
<option value="1">1</option>
<option value="2">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<button onclick="calcDays()">Get missing days in the month</button>
<!-- Finish your select options -->