Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dlaczego nie przechodzi walidacji
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
chomiczek
Mam takie pytanko, a mianowicie mam powiedzmy standardowy układ strony:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


na samym dole przed zamknięciem body mam taki zapis:
  1. <script src="scripts/chrisdomroll.js" type="text/javascript"></script>
  2.  
  3. <script type="text/javascript">
  4. document.getElementById('statG').innerHTML = '<div id="statP">Kasa: 0.00 zł<br />Poziom: 53<br/>Respekt: 788.96<br/>Doświadczenie: 1588</div>Moc: 136 KM <br/>vMax: 195 km/h <br/>v100: 11 sekund <br/>Bak: 70 / 70 litrów';


głównie chodzi o to drugie wywołanie JS.. a mianowicie podczas walidacji mam informację:
Cytat
Błąd: document type does not allow element "div" here
Błąd: document type does not allow element "br" here
Błąd: document type does not allow element "br" here
Błąd: document type does not allow element "br" here


wychodzi na to, że nie mogę w JS użyć DIV oraz BR.. dlaczego?? Jak to ominąćquestionmark.gif
P.S. nie mogę tego wrzucić do pliku JS z uwagi na to, że jest to dynamiczna zawartość generowana w PHP.
szamburdsz
Rozumiem, ze elementem o id="statG" jest element <div>.

wykonując ten kod:
  1. <div id="staG">
  2. </div>
  3. <script type="text/javascript">
  4. document.getElementById('statG').innerHTML = '<div id="statP">Kasa: 0.00 zł<br />Poziom: 53<br/>Respekt: 788.96<br/>Doświadczenie: 1588</div>Moc: 136 KM <br/>vMax: 195 km/h <br/>v100: 11 sekund <br/>Bak: 70 / 70 litrów';

Bez problemu otrzymuje się wynik, o który Ci chodzi:

Kasa: 0.00 zł
Poziom: 53
Respekt: 788.96
Doświadczenie: 1588
Moc: 136 KM
vMax: 195 km/h
v100: 11 sekund
Bak: 70 / 70 litrów
chomiczek
szamburdsz, wiem, że otrzymuje, ale podczas walidacji pokazuje mi, że jest błąd.. a nie wiem czemu :/
lord_t
Nie przerywaj tej linii enterem: niech wszystko co przypisujesz do document.getElementById('statG').innerHTML będzie w jednej linii.
szamburdsz
metoda innerHTML nie powinna zawierac elementów takich jak <div> oraz <br>.
Służy ona do podmiany zawartości ale z wyłączeniem tagów.

Jednak zaimplementowana w przeglądarki obsługa JS dopuszcza tego typu znaczniki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.