• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Cannot set property 'value' of null

VPS Starter Arubacloud
+1 głos
268 wizyt
pytanie zadane 4 lipca 2021 w JavaScript przez ferdynand Obywatel (1,250 p.)

  Witam,

- Mam taki input z datą na podstronie  

<input type="date" id="choose-date" min="" value="">

w tym inpucie ma sie wyswietlać data dzisiejsza :

let today = new Date()

let date = addZero(today.getDate());

let month = addZero(today.getMonth()+1);

let year = today.getFullYear();

let currentDate = `${year}-${month}-${date}`;

document.getElementById("choose-date").value = currentDate;

problem polega na tym, że na tej podstronie na, ktorej umieszczony jest input.Konsola nie pokazuje mi błedu " Cannot set property 'value' of null", niestety na innych podstronach już tak , przez to programm nie działa.Siedzę nad tym od paru godzin szukam, kombinuje i nic, czy zna ktoś odpowiedż ? bo już powoli tu gotuje, a i odrazu powiem, że skrypt z plikiem js znajduje sie tuz na dole przed </body>...Pozdrawiam 

 

komentarz 5 lipca 2021 przez VBService Ekspert (251,210 p.)
edycja 5 lipca 2021 przez VBService

wink

How to set input type date's default value to today?

<input type="date" id="choose-date">
const chooseDateElement = document.getElementById("choose-date");
  
if (chooseDateElement) {
  //chooseDateElement.value = (new Date()).toJSON().slice(0,10);
  //chooseDateElement.value = (new Date()).toISOString().slice(0,10);
  chooseDateElement.valueAsNumber = Date.now()-(new Date()).getTimezoneOffset()*60000;
}

 

2 odpowiedzi

+1 głos
odpowiedź 4 lipca 2021 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 4 lipca 2021 przez ferdynand
 
Najlepsza

na tej podstronie na, ktorej umieszczony jest input.Konsola nie pokazuje mi błedu " Cannot set property 'value' of null", niestety na innych podstronach już tak , przez to programm nie działa

A czy na innych podstronach ten input jest? Bo jeśli na stronie nie ma elementu o id choose-date, to metoda document.getElementById zwraca null i dlatego próba dostania się do property value rzuca błędem.

Możesz zabezpieczyć się przed tym błędem np. poprzez sprawdzenie, czy ten element został znaleziony na stronie i dopiero wtedy odnieś się do jego property value:

const chooseDateElement = document.getElementById("choose-date");

if (chooseDateElement) {
  chooseDateElement.value = currentDate;
}

 

komentarz 4 lipca 2021 przez Wiciorny Ekspert (269,120 p.)
ja nawet sprawdziłem, ten input będzie na tej stronie, podejrzewam że  kolega chyba nie importowal skryptu na pozostałe pod strony, lub podstrony nie maja inputu
komentarz 4 lipca 2021 przez ferdynand Obywatel (1,250 p.)
skrypt jest na każdej podstronie, ale tylko na jednej jest potrzeny mi input bo na niej mam formularz.
komentarz 4 lipca 2021 przez Wiciorny Ekspert (269,120 p.)
no ale jeśli na pozostałych inputa nie ma, to nie możesz korzystać z funkcji DOM dla  elementu po id
document.getElementById("choose-date").value = currentDate;

bo odwołuje się do obiektu dokumentu aktualnego
komentarz 4 lipca 2021 przez ferdynand Obywatel (1,250 p.)
to co moge zrobić ? bo już chyba nie ogarniam
1
komentarz 4 lipca 2021 przez ScriptyChris Mędrzec (190,190 p.)

@ferdynand, Skoro na pozostałych stronach nie masz tego inputa, to do czego potrzebny Ci ten kod na innych stronach? Albo podpinaj skrypt tylko na stronach, gdzie input jest, albo - jak zaproponowałem - dodaj warunek, który sprawdzi czy dany element na stronie jest i tylko wtedy wykonuj dalsze operacje, albo (wariacja drugiej opcji) - jeśli ten kod jest tylko fragmentem całego skryptu - owiń go w funkcję i ją wywołuj na warunek (albo daj na początku takiej funkcji warunek, który nie wykona dalszego kodu, jeśli elementu nie ma na stronie).

1
komentarz 4 lipca 2021 przez ferdynand Obywatel (1,250 p.)

Dzięki wielkie za podpowiedzi, śmiga tak jak powinno.Pozdrawiam wink

0 głosów
odpowiedź 4 lipca 2021 przez Wiciorny Ekspert (269,120 p.)

A zaimportowałeś skrypt na pozostałe podstrony? Bo może :) nie widza, druga sprawa twoj input ma id- powinien być unikalny. Rozumiem że na pozostałych podstronach jest ten sam input z tym samym id? :)

 

niestety na innych podstronach już tak , przez to programm nie działa.

a jest tam ten input? odwołujesz się do ELEMENTU DOM. więc musi być on w drzewku dokumentu  

Podobne pytania

0 głosów
1 odpowiedź 448 wizyt
pytanie zadane 7 października 2020 w JavaScript przez Casia Nowicjusz (120 p.)
0 głosów
1 odpowiedź 481 wizyt
0 głosów
1 odpowiedź 338 wizyt
pytanie zadane 15 stycznia 2019 w JavaScript przez Janik Nowicjusz (120 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...