Вернуть значение Nan в javascript?

Я пытаюсь получить количество дней выбранного года выбранного месяца с помощью javascript. Но в результате это дало мне значение NaN. Что я должен сделать, чтобы решить эту проблему? Спасибо.

<script>
   function myFunction() {
   var month =parseInt(document.getElementById('month'));
   var year = parseInt(document.getElementById('year'));
   var d = new Date(year, month);
   var n = d.getDate();
   document.getElementById("show").innerHTML = n;
}
</script>

<form>
    <label>Select Year</label>
    <select name = "year" required = "" id='year'>
        <option value = ""></option>
        <?php 
            $curr_year = date('Y');
            $next_year = $curr_year+3;
            for($year = $curr_year; $year<=$next_year; $year++){ ?>
                <option value = "<?php echo $year ;?>"> <?php echo $year 
            ;?></option>
        <?php   } ?>
    </select>
    <label>Select Month</label>
    <select name = "month" id = "month" required = "" onchange = "myFunction()">
        <option></option>
        <?php
            for($i = 1 ; $i <= 12; $i++){ ?>
                <option value='<?php echo date("F",strtotime(date("Y")."-".$i."-01")); ?>'><?php  echo date("F",strtotime(date("Y")."-".$i."-01"));?></option>
            <?php } ?>
    </select>

    <div class = "show" id = "show">
        <h1>Hello world....</h1>
    </div>

Я очень сожалею об этой ошибке. Ты прав

Afzal Khan 27.02.2019 09:33

Вы устанавливаете название месяца в качестве значения для списка месяцев. Вместо этого попробуйте установить номер месяца.

M. Eriksson 27.02.2019 09:35

Вы правы. Основная проблема заключалась в значении, которое я установил для строки. Большое спасибо Чувак. :)

Afzal Khan 27.02.2019 09:57
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
183
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы только что получили элемент. Ниже будет получено значение элемента.

var month = parseInt(document.getElementById('month').value);

OP также устанавливает имя в качестве значения месяца вместо номера месяца.

M. Eriksson 27.02.2019 09:36
Ответ принят как подходящий

Функция new Date() неверна, и нужно выбрать .value

 function myFunction() {
   var month = document.getElementById('month').value;
   var year = document.getElementById('year').value;
   var d = new Date(year,month,0);
   document.getElementById("show").innerHTML = d.getDate();
}
<form>
    <label>Select Year</label>
    <select name = "year" required = "" id='year'>
        <option></option>
        <option value = "2015">2015</option>
        <option value = "2016">2016</option>
        <option value = "2017">2017</option>
        <option value = "2018">2018</option>
    </select>
    <label>Select Month</label>
    <select name = "month" id = "month" required = "" onchange = "myFunction()">  
        <option></option>      
        <option value = "01">1</option>
        <option value = "02">2</option>
        <option value = "03">3</option>
        <option value = "04">4</option>
    </select>

    <div class = "show" id = "show">
        <h1>Hello world....</h1>
    </div>

Я не знаю, почему вы хотите получить дату, потому что дата по умолчанию = 1 без параметра

но я хочу получить общее количество дней выбранного месяца.

Afzal Khan 27.02.2019 09:47

Другие вопросы по теме