单选按钮在javascript中返回未定义的值

时间:2018-08-15 03:45:02

标签: javascript html

单选按钮返回未定义的值。我的html代码是:

  <input name="start" value="" id="start1" type="radio">
  <label for="start1">date</label>

javascript:

<script type="text/javascript">
    (function() {
        if (document.getElementById('start1').checked) {
            var CurrentDate = new Date();
            CurrentDate.setMonth(CurrentDate.getMonth() + 1);
        }
    });

</script>

当我选中单选按钮start1时,它将在当前月份增加1个月。但是我的 console.log(CurrentDate)显示了未定义的变量名称。如何显示结果?

3 个答案:

答案 0 :(得分:1)

您没有调用包装函数

(function () {
    document.getElementById('start1').addEventListener('change', () => {
        let CurrentDate = new Date();
        CurrentDate.setMonth(CurrentDate.getMonth() + 1);
        dateEl.innerHTML = CurrentDate
    })
})();
<input name="start" value="" id="start1" type="radio">
<label for="start1">date</label>

<div id="dateEl"></div>

答案 1 :(得分:1)

您拥有的immediately-invoked function expression会在定义后立即运行-因此它将在您甚至没有机会单击单选按钮之前运行。

您需要在单选按钮上附加一个事件侦听器,以便在单击(或更改)单选按钮时运行功能。

答案 2 :(得分:1)

这将为您工作。

简单的JavaScript-

function check() {
    if (document.getElementById('start1').checked) {
        var CurrentDate = new Date();
        CurrentDate.setMonth(CurrentDate.getMonth() + 1);
        document.getElementById("dateDisplay").innerHTML = ""+CurrentDate;
    }
};
<input name="start" value="" id="start1" type="radio" oninput="check()">
<div id="dateDisplay"></div>