Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как достать объект дата из функции на событии (https://javascript.ru/forum/events/75336-kak-dostat-obekt-data-iz-funkcii-na-sobytii.html)

krars 24.09.2018 19:00

Как достать объект дата из функции на событии
 
Подскажите как переписать/ дописать, чтобы выводить изменённую дату из события функции подвешенной на oninput?
<input type="text" name="depdate" id="depdate" >
var supDep = new Date();
var input = document.getElementsByTagName('input')[0];
input.oninput = function (){
        var  valInInput = (document.getElementsByTagName('input')[0].value.match(/\d+/g));
            supDep.setHours(valInInput[0],valInInput[1],valInInput[2],valInInput[3]);
            }

laimas 24.09.2018 21:36

Цитата:

Сообщение от krars
var input = document.getElementsByTagName('input')[0];

var valInInput = (document.getElementsByTagName('input')[0] - зачем дважды, и к тому же в функции он и так будет доступен? И зачем скобки?

А чтобы получить время да еще с подробностями, должен быть оговорен формат ввода. И каков он?

krars 24.09.2018 22:33

Да, спасибо, исправил, а есть ли возможность получить дату вне функции?

laimas 24.09.2018 23:07

Цитата:

Сообщение от krars
есть ли возможность получить дату вне функции?

Что значит получить и что за дату?

krars 25.09.2018 05:00

Разобрался, я только учусь. Как рационально передать значения из массива в объект? А то мне кажется четыре раза писать "valInInput[..]" не очень разумно.
function inlet(){
    var input = document.getElementById('depdate');
    var valInInput = input.value.match(/\d+/g);
    valInInput.length = 4;
    supDep.setHours(valInInput[0],valInInput[1],valInInput[2],valInInput[3]);
    return supDep;
}
document.onkeydown = function(e) { 
    if (e.keyCode == 18) { 
        console.log(inlet()); 
    }
}

Malleys 25.09.2018 05:23

Цитата:

Сообщение от krars
мне кажется четыре раза писать "valInInput[..]" не очень разумно

Вместо
supDep.setHours(valInInput[0],valInInput[1],valInInput[2],valInInput[3]);
можно
supDep.setHours(...valInInput);

krars 25.09.2018 05:32

Спасибо)

laimas 25.09.2018 05:43

krars, это какая-то бессмыслица. Запустить:

var n = '123'.match(/\d+/g);

alert(n + '\n' + n[1])

Белый шум 25.09.2018 14:12

laimas,
var n = '123-456-78-90'.match(/\d+/g);
alert(n + '\n' + n[1]);

laimas 25.09.2018 16:43

Белый шум,
я задавал вопрос о формате ввода, как там бог знает, и что получим тоже, можно то и не получить.


Часовой пояс GMT +3, время: 07:05.