[javascript] Porovnání obsahu

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Thomas123 26. 3. 2008 21:09

Čau lidi, opět se sem v krátké době vracím.

Potřebuji udělat jednoduché porovnání čtyř textových polí pomocí javascriptu. Dvě textová pole budou skrytá a dvě odekrytá.

Potřebuji po kliknutí na tlačítko porovnat obsah 1. pole se 3., když se rovnají provést akci (zelené písmo v 1. poli), když se nerovnají provést akci (červené písmo v 1. poli), to stejné s 2. a 4. polem.

Myslím, že to bude nějak spjato s funkcí var a použije se tam document.getElementById(prvni).value?

PHP, Javascript, atd. neovládám, trohu jen (x)HTML a CSS. Nevíte, kde bych našel nějaký návod? Neudělal již někdo něco podobného?
// I vy můžete mít legální software, stačí používat Linux Ubuntu //
Thomas123
Junior
Uživatelský avatar

Odeslat příspěvekod aacid 27. 3. 2008 00:07

aacid
Junior
Uživatelský avatar

Odeslat příspěvekod gofry 27. 3. 2008 20:49

Kód: Vybrat vše
function porovnaj(id_jedneho_policka, id_druheho_policka) {

  if(document.getElementById(id_jedneho_policka).value == document.getElementById(id_druheho_policka).value) {

    document.getElementById(id_jedneho_policka).style.color = 'green';

  } else {

    document.getElementById(id_jedneho_policka).style.color = 'red';

  }
}


tlačítku potom priraď atribút
Kód: Vybrat vše
onclick="porovnaj('prvy', 'treti')"
respektíve
Kód: Vybrat vše
onclick="porovnaj('druhy', 'stvrty')"
gofry
Junior
Uživatelský avatar

Odeslat příspěvekod Thomas123 27. 3. 2008 20:56

Díky, vyzkouším.
// I vy můžete mít legální software, stačí používat Linux Ubuntu //
Thomas123
Junior
Uživatelský avatar

Odeslat příspěvekod Thomas123 29. 3. 2008 12:12

Zřejmě jsem někde udělal chybu.

Kód: Vybrat vše
  <script type="text/javascript">

   function kontroluj(input, input-ok) {

    if(document.getElementById(input).value == document.getElementById(input-ok).value) {

      document.getElementById(input).style.color = 'green';

    } else {

     document.getElementById(input).style.color = 'red';
 
    }
   }

  </script>


Kód: Vybrat vše
<form name="kontrola">

<input type="text" name="input" class="input" maxlength="111" />

<input type="hidden" name="input-ok" class="input" value="test" maxlength="111" />

<input type="submit" class="kontrola" value="Zkontrolovat" onclick="kontroluj('input','input-ok')" />

</form>


Ať napíšu, co napíšu, zkrátka mi to nebere. Myslím, že problém bude v mém zápisu, ale kde? Nemohu se toho dopátrat.
// I vy můžete mít legální software, stačí používat Linux Ubuntu //
Thomas123
Junior
Uživatelský avatar

Odeslat příspěvekod aacid 29. 3. 2008 12:18

s tymto ti nepomozem, ale neviem ci si to uvedomujes, ze input type="hidden" sice bude schovany na stranke, ale v zdrojovom kode ho stale uvidis, takze kazdy koho to napadne tvoj test bez problemov vyriesi na 100% :)
aacid
Junior
Uživatelský avatar

Odeslat příspěvekod Thomas123 29. 3. 2008 12:24

To si uvědomuji a je to trochu ošetřené.
// I vy můžete mít legální software, stačí používat Linux Ubuntu //
Thomas123
Junior
Uživatelský avatar

Odeslat příspěvekod gofry 29. 3. 2008 12:26

Vo funkcii kontroluj() premenuj argument "input-ok" na "input_ok". Takto keď zavoláš document.getElementById(input-ok) tak to "input-ok" je akoby si od premennej "input" odčítal premennú "ok" a výsledok odčítania si použil ako argument fcie getElementById. Čo ti samozrejme nemôže fungovať hneď z dvoch dôvodov
1. odčítanie na stringu tak nejak nemá význam.
2. premená "ok" je nedefinovná.

Obecne teda ako názvy premenných doporučujem používať iba písmená anglickej abecedy, podtržítko a číslice. Pritom dobrým zvykom je, že prvý znak premennej by malo byť písmeno, nie číslica ani podtržítko. Niektorým programovacím jazykom to nerobí dobre.
Naposledy upravil gofry dne 29. 3. 2008 12:27, celkově upraveno 1
gofry
Junior
Uživatelský avatar

Odeslat příspěvekod Thomas123 29. 3. 2008 12:33

Upravil jsem to a nějak mi to nejde. V <form> nemá být ještě něco zapsáno? Když schválně zapíši špatné slovo, tak mi pak v adresním řádku vyleze např.: "http://localhost/php/index.php?flower=aaa&flower_ok=Test". Kde je tedy chyba. Oddělal jsem i ty apostrofy.
// I vy můžete mít legální software, stačí používat Linux Ubuntu //
Thomas123
Junior
Uživatelský avatar

Odeslat příspěvekod gofry 29. 3. 2008 12:40

Funkciu kontroluj uprav:

Kód: Vybrat vše
document.getElementById(input).style.color = 'green';

na
Kód: Vybrat vše
document.getElementById(input).style.color = 'green';
return true;


a

Kód: Vybrat vše
document.getElementById(input).style.color = 'red';

na
Kód: Vybrat vše
document.getElementById(input).style.color = 'red';
return false;


udalosť onclick potom zmeň na
Kód: Vybrat vše
onclick="return kontroluj('input', 'input_ok')"
gofry
Junior
Uživatelský avatar

Odeslat příspěvekod gofry 29. 3. 2008 12:47

Poprípade keď ten formulár nechceš nikam odosielať ale fakt iba zmeniť farbu textu, tak to, čo som napísal v poslednom príspevku nemusíš robiť, iba zmeň typ inputu zo "submit" na "button".
gofry
Junior
Uživatelský avatar

Odeslat příspěvekod Thomas123 29. 3. 2008 12:56

Super, díky moc. Už to funguje. Chyba byla v tom submit x button. Já jen měním barvu, takže submit byl zbytečný.

Jen, jde nějak udělat, aby ignoroval rozdíl velkých a malých písmen? Takže, když ve skrytém input_ok mám Test, tak když napíšu do input test, tak aby v tom nebyl rozdíl (=barva zelená).
// I vy můžete mít legální software, stačí používat Linux Ubuntu //
Thomas123
Junior
Uživatelský avatar

Odeslat příspěvekod gofry 29. 3. 2008 13:08

Preveď oba reťazce na lower case alebo oba na upper case a potom ich porovnaj.

Viď napr. Uppercasing and Lowercasing Characters of a String
gofry
Junior
Uživatelský avatar

Odeslat příspěvekod Thomas123 29. 3. 2008 13:24

Pochopil jsem, že to má vypadat nějak takhle?

Kód: Vybrat vše
<script type="text/javascript">

function toLower() {

var MyInput = document.getElementById(input).value;

var low = MyInput.toLowerCase();

alert(low)

}

</script>


Ale nějak nevím, kam to dopsat.
// I vy můžete mít legální software, stačí používat Linux Ubuntu //
Thomas123
Junior
Uživatelský avatar

Odeslat příspěvekod gofry 29. 3. 2008 14:17

No, skôr nie ako áno.

Kód: Vybrat vše
function porovnaj(id_jedneho_policka, id_druheho_policka) {

  var input1 = document.getElementById(id_jedneho_policka);
  var input2 = document.getElementById(id_druheho_policka);

  if(input1.value.toLowerCase() == input2.value.toLowerCase()) {

    input1.style.color = 'green';

  } else {

    input1.style.color = 'red';

  }
}
gofry
Junior
Uživatelský avatar

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků