Ваш функциональный параметр (secs
) не является значением input
.Этот параметр фактически является ссылкой на событие keydown
.Вам необходимо вручную установить для переменной значение value
.
. Теперь, когда это невозможно, неясно, зачем вы хотите выполнить эту работу в событии keydown
.Вероятно, имеет смысл сделать это, когда пользователь покидает поле, и только если значение поля изменилось, и в этом случае вы захотите событие change
.
Кроме того, не используйте.html()
метод, когда строка, с которой вы работаете, не содержит HTML.Это открывает дыры в безопасности вашего кода и может снизить производительность.Вместо этого используйте метод .text()
для строк, отличных от HTML.
$(document).on('change', function toDateTime() {
var secs = $('input').val(); // <-- Get the value of the input
var t = new Date(1970, 0, 1); // Epoch
t.setSeconds(+secs);
console.log(t);
$("#toDate").text(t);
$('input').focus();
return t;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="border border-dark text-center card-body">
<p>Convert Seconds (press tab to leave the field after data entry)</p>
<input size="16" type="text" id="seconds">
</div>
<hr>
<div class="border border-dark text-center card-body">
<p>To Date</p>
<p id="toDate"></p>
</div>