如何获取所选选项的值并将其保存到变量中? (JavaScript)的

时间:2015-08-22 04:27:26

标签: javascript

我正在创建一个简单的计算器,用于计算一个月内剩余的天数。我有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>

谢谢!

2 个答案:

答案 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 -->