Autor Zpráva
ad48
Profil *
Napsal jsem toto:
<style>
.a{display:none}
</style>
<font class="a" color="red">Heslo není stejné!<br></font>
<input id="a" onkeyup="if(a.value==b.value) document.styleSheets(0).disabled=false;else document.styleSheets(0).disabled=true">
<br>
<input id="b" onkeyup="if(a.value==b.value) document.styleSheets(0).disabled=false;else document.styleSheets(0).disabled=true">
<br>
<input type="button" onclick="if(a.value.length==0+b.value.length==0+a.value==b.value==false) alert('První heslo není zadané!');if(b.value.length==0+a.value==b.value==false) alert('Druhé heslo není zadané!');if(document.styleSheets(0).disabled==false+a.value.length==0) alert('OK');if(a.value==b.value==false) alert('Heslo nesouhlasí!')" value="OK">

Když jsem něco napsal do prvního pole a kliknul na OK,tak se zobrazila jedna hláška. Když jsem něco napsal do druhého pole a kliknul na OK,tak se zobrazily čtyři hlášky. Nevíte proč.
preca1
Profil
myslim, že by sis toho měl přečíst víc o JS. projdi si v klidu to, co je na jpw a vyzkoušej si ty příklady, co tam máš. na co by ses podle mě měl zaměřit: a) pro pracování s jednotlivejma obejktama (input, div, text, atd) používej document.getElementById() (na velikosti písmen v JS záleží!) - předposlední nadpis,
b) jak se používá + (plus) a k čemu je && se podívej se na operátory,
c) abys nemusel do události psát slohy (viz to tvoje onclick="if...) a měl v kódu větší přehled, nastuduj si funkce a nauč se je používat + se koukni na použití složenejch (chlupatejch) závorek {},
d) nevim, kde si vzal to document.styleSheets, ale FireBug mi hlásí, že to není fce. existuje to, ale máš to blbě napsaný, takže bych ze začátku používal to, co sem použil já (a.style.display...).

A tady je, jak bych to napsal já
<style>
#upozorneni {
  display: none;
}
</style>
<div id="upozorneni">Heslo není stejné!</div>
<input type="text" id="a" onkeyup="rychlaKontrola()"><br>
<input type="text" id="b" onkeyup="rychlaKontrola()"><br>
<input type="button" onclick="dumyslnaKontrola()" value="Zkontrolovat">
<script>


//vybíram si ze stránky jednotlivý objekty, se kterejma chci pracovat, pomocí 
//document.getElementById() a ukládam si je jako proměnný
var a=document.getElementById("a");
var b=document.getElementById("b");
var div=document.getElementById("div");

//fce, která se provede při stisku kláves
function rychlaKontrola() {
  if (a.value!=b.value) {
    upozorneni.style.display="block";//pokud hodnoty neouhlasí, zobrazí se div s textem
  } else {
      upozorneni.style.display="none";
    }
}


//fce, která se provede při stisknutí čudlíku
function dumyslnaKontrola() {
vsechnoJeVPoradku = true; //proměnná, která mi udržuje přehled o tom,
                          //jestli je všechno v pořádku
  if (a.value.length==0) {
    alert("První heslo není zadané!");
    vsechnoJeVPoradku = false; //něco není v pořádku, tak proměnnou nastavim na               
                                //false
  }
  
  if (b.value.length==0) {
    alert("Druhé heslo není zadané!");
    vsechnoJeVPoradku = false;
  }
  
  if (a.value!=b.value) {
    alert("Hesla nesouhlasí!");
    vsechnoJeVPoradku = false;
  }
  
  if (vsechnoJeVPoradku) {
    alert("Všechno je v pořádku!");
  }
}
</script>
Chamurappi
Profil
Reaguji na precu1:
(to var tam neni potřeba psát)
Brr. Samozřejmě, že potřeba je. Zejména v tomhle případě ti pravděpodobně zajistí chybějící var ošklivý problém s kompatibilitou, protože máš proměnnou nazvanou stejně jako id. Když takhle explicitně napíšeš, že je var zbytečné, tak začátečníkovi docela uškodíš.
preca1
Profil
Aha, tak to se omlouvam, ale vycházel sem z tohodle - Vysvětlení skriptu -> druhý odstavec asi v 1/3:
V JavaScriptu je dobré proměnné deklarovat. Na deklarování slouží klíčové slovo var následované výpisem použitých proměnných. Ale nemusí se to dělat.

Dík za opravu, ale vycházel sem z toho, co sem si přečet. Určitě bych si informace jen tak nevycucal z prstu :). Už mam rozepsanej mail Yuhůovi

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: