Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML] Walidator - jak zmienić kod?
Forum PHP.pl > Forum > Przedszkole
camilost
Jak to dobrze złożyć, aby walidator się nie rzucał (Na końcu HTML+JS)?

Walidator wypłakuje takie cuda
Cytat
document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag
<input type="text" name="area" />

oraz
Cytat
document type does not allow element "select" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag
…e="shape" size="1" onchange="this.form.area.value=doArea(this.selectedIndex);">



Gdy dam te input i select poza form to wiadomo - nie będzie działać ;/
(Może div + value - liczba (potrzebna do switcha)questionmark.gif



  1. Wylicz pole figury:<form name="calcarea" action="...">
  2. <select name="shape" size="1" onchange="this.form.area.value=doArea(this.selectedIndex);">
  3. <option>...</option>
  4. <option value="square">Kwadrat</option>
  5. <option value="triangle">Trójkąt prostokątny</option>
  6. <option value="rectangle">Prostokąt</option>
  7. <option value="circle">Okrąg</option>
  8. <option value="sphere">Kula</option>
  9. <option value="parallelogram">Równoległobok</option>
  10. <input type="text" name="area" />
  11. </form>


  1. <script type="text/javascript">
  2. <!--
  3. function doArea(num) {
  4. switch(num) {
  5. case 0: return (""); break;
  6. case 1: var length = prompt("Wprowadź długość kwadratu:", "");
  7. length = length * length;
  8. return (length); break;
  9.  
  10. case 2: var width = prompt("Wprowadź szerokość podstawy:", "");
  11. var height = prompt("Wprowadź wysokość:", "");
  12. return (width * height / 2); break;
  13.  
  14. case 3: var width = prompt("Wprowadź szerokość:", "");
  15. var height = prompt("Wprowadź wysokość:", "");
  16. return (width * height); break;
  17.  
  18. case 4: var radius = prompt("Wprowadź promień okręgu: ", "");
  19. return (Math.PI * Math.pow(radius, 2)); break;
  20.  
  21. case 5: var radius = prompt("Wprowadź promień kuli:", 0);
  22. return (4 * Math.PI * (Math.pow(radius, 2))); break;
  23.  
  24. case 6: var boka = prompt("Wprowadź długość podstawy:", "");
  25. var height = prompt("Wprowadź wysokość:", "");
  26. return (boka * height); break;
  27. }
  28. }
  29. -->
  30. </script>
skowron-line
Cytat(camilost @ 10.10.2010, 01:36:56 ) *
Gdy dam te input i select poza form to wiadomo - nie będzie działać ;/
(Może div + value - liczba (potrzebna do switcha)questionmark.gif

Prędzej coś takiego
  1. <p><input /></p>
  2. <p>select /></p>
camilost
Cytat
there is no attribute "name"
<form name="adv" action="...">


a w inputach mam onclick="document.adv.input.value= XXX" i w JS np. doit(){ document.adv.input.value = XX }

Jak to zmienić, aby też się nie rzucał? : D (JBC mogę podać cały kod [trochę go jest - nie za dużo])
bmL
Kod
there is no attribute "name"
<form name="adv" action="...">


<form name="calcarea" action="...">
Podkreślone usunąć. Tak jak sugeruje komunikat błędu: Nie istnieje taki atrybut jak "name" (w domyśle dla tagu form)

Walidator nigdy nie będzie się czepiał zawartości skryptów. No chyba że się je źle wstawi... Nic tutaj nie masz poprawiać w skryptach, pomyśl co jest niepoprawnie w kodzie html/xhtml co kolwiek tam masz smile.gifsmile.gif
camilost
Super a co z JS? -,- Jak ma działać bez name? - Jak zmienić...

Zaawansowany kalkulator: http://212.59.248.184/calc.php

jak usunę to skrypt nie będzie działał bo nie znalazł odpowiedniego FORM -,-
bmL
Nadaj mu identyfikator (id="adv") i użyj document.getElementById('adv');
camilost
document.adv.input.value zamienić na document.getElementById('adv').input.value czy document.getElementById ('adv')

(Próbowałem oba, id="adv" mam i lipka ^^ nic nie działa w zaawansowanym)
bmL
Wklej urywek kodu js w którym odnowisz się do document.adv.input.value. W ogóle to uważał bym z takimi nazwami pól jak np. input. Nie wiem czy to nie będzie miało ubocznych efektów ale kiedyś nazwałem pole submit i przez to nie mogłem wywołać metody forum.submit() bo została nadpisana albo ukryta przez pole o nazwie submit.
camilost
  1. function doit() {
  2. var userinput = document.adv.input.value;
  3. document.adv.input.value = eval(userinput);
  4. }
  5.  
  6. function plus() {
  7. document.adv.input.value += '+';
  8. }
  9.  
  10. function minus() {
  11. document.adv.input.value += '-';
  12. }
  13.  
  14. function mult() {
  15. document.adv.input.value += '*';
  16. }
  17.  
  18. function div() {
  19. document.adv.input.value += '/';
  20. }


i do tego html kawałek

  1. <form name="adv" action="...">
  2. <table width="55" cellspacing="2" cellpadding="5" border="1">
  3. <tr>
  4. <td><input type="text" name="input" size="20" maxlength="30" class="disp"/></td>
  5. <td><input type="button" value=" ^ " onclick="power()" class="btswhite"/></td>
  6. <td><input type="button" value=" C " onclick="document.adv.input.value = ''; " class="btswhite"/></td>


Dalej już nic nie ma z js ^^
bmL
document.getElementById('adv').input.value += '+';
Powinno działać jeżeli nie działa to spróbuj zmienić nazwę input na jakąś inną bo input to nazwa tagu html'owego więc może stwarzać problemy. Jak nie będzie działać odpal stronę i użyj jakichś narzędzi do debugowania js zobacz czy wyświetla jakieś błędy ten kod js. W FireFoxie konsolę błędów odpalasz ctr+shift+j w operze trzeba w menu gdzieś poszukać.

ps. jak piszesz kalkulator to ładnie by było to opakować w klasę smile.gif Wbrew pozorom js ma bardzo fajny model obiektowy smile.gif

ps2. ten link co wcześniej podałeś http://212.59.248.184/calc.php u mnie w firefoxie kodowanie się sypie i nie działa po prostu tongue.gif

Na początek zaglądam w źródło i widzę:
Kod
//<![CDATA[
<!--
function showSpoiler(obj)
{
    var inner = obj.parentNode.getElementsByTagName("div")[0];
    if (inner.style.display == "none")
        inner.style.display = "";
    else
        inner.style.display = "none";
}
-->
//]]>

Fajnie że opakowałeś w sekcję CDATA i komentarze HTML'owe, ale czy czegoś tutaj nie brakuje? snitch.gif Na przykład <script type="text/javascript">? smile.gif

Nie wiem może czepiam się rzeczy których nie powinienem bo jesteś w trakcie poprawiania ich? snitch.gif
camilost
Ta robiłem że zamiast include <script src="i tu sciezka do spoilera"> </script> ^^ dlatego błędy miałeś : d

@EDIT nie wiem jak ja to wcześniej robiłem, że teraz mi działa a wcześniej nie : D

Został ostatni calc ^^
  1. <form id="Keypad" action="...">
  2. <table border="2" width="50" cellpadding="1" cellspacing="5">
  3. <tr>
  4. <td colspan="3"><input name="ReadOut" type="text" size="24" value="0"/></td>
  5. <td></td>
  6. <td><input name="btnClear" type="button" value=" C " onclick="Clear()"/></td>
  7. <td><input name="btnClearEntry" type="button" value=" CE " onclick="ClearEntry()"/></td>
  8. </tr>
  9. <tr>
  10. <td><input name="btnSeven" type="button" value=" 7 " onclick="NumPressed(7)"/></td>


  1. <script type="text/javascript">
  2. //<![CDATA[
  3. <!--
  4. var FKeyPad = document.getElementById('Kaypad');
  5. var Accum = 0;
  6. var FlagNewNum = false;
  7. var PendingOp = "";
  8. function NumPressed (Num) {
  9. if (FlagNewNum) {
  10. FKeyPad.ReadOut.value = Num;
  11. FlagNewNum = false;
  12. }
  13. else {
  14. if (FKeyPad.ReadOut.value == "0")
  15. FKeyPad.ReadOut.value = Num;
  16. else
  17. FKeyPad.ReadOut.value += Num;
  18. }
  19. }


W debugu pisze
Cytat
Uncaught TypeError: Cannot read property 'ReadOut' of null
NumPressedcalc.php:309
(anonymous function)calc.php:281
onclick

A te linie zaczynają się od FKeyPad, czyli coś źle z nim mam? Zostawię narazie z błędami (tylko ten calc - Zwykły)
bmL
W firefoxie mam taki błąd:
Kod
Błąd: FKeyPad is null
Plik źródłowy: http://212.59.248.184/calc.php
Wiersz: 309

Patrzę w twój kod i mam
Kod
var FKeyPad = document.getElementById('Kaypad');

Widzisz literówkę? snitch.gif

ps. zrób coś z kodowaniem tongue.gif Zobacz jak strona wygląda w firefox.

ps2. kodowanie się psuje chyba bo plik zapisujesz z BOM (google po więcej info) sprawdź w swoim edytorze albo go zmień. Wnioskuję po pierwszych 3 znakach wyświetlonych w FX ale ręki nie dam sobie uciąć
camilost
Dobra już ze skryptami git^^

Właśnie w szkole zauważyłem, że tylko calc.php w firefoxie ma zryte kodowanie ^^
Tak mam na każdej z BOM i na innych działa. ;d

Zobacz teraz kodowanie (Nie mam firefoxa)
Zapomniałem w tamtym pliku iso na UTF i kodowanie dałem w ISO a format pliku na UTF. haha.gif
Zrobiłem bez BOM ;]
bmL
Jest git.
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.