Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Dynamiczny index tablicy w inpucie
Forum PHP.pl > Forum > Przedszkole
lubiemdziem
Witam!
Nie będę obijał w bawełnę, nie potrafię napisać prostego skryptu. Tu obecne wypociny:

Head:
Kod
function licz(x){ x.wynik.value=(x.dane1.value||0)+(x.dane2.value||0)}


Body:
Kod
var Lancuch = new Array('0','83','174','276','388','512','650','801','969','1154')
document.write(Lancuch[5]) //pokaze 512;



Kod
<form>
<input type="text" name="dane1" onkeyup="licz(this.form)">
+
<input type="text" name="dane2" onkeyup="licz(this.form)">
=
<input name="wynik" type="text">
</form>


I tu co zamierzam napisać:

W inpucie "dane1" będę wpisywał liczbę (np. 5) która w inpucie "dane2" pokaże 512 (idąc łańcuchem) -> wykorzystuję index tablicy, tylko, że nie potrafię tego zrobić.

Podeślecie mi jakiś poradnik, który mi pomoże? Proszę, to dla mnie bardzo ważne. Z góry dziękuję

bpskiba
  1. <script LANGUAGE="JavaScript" TYPE="text/javascript">
  2. <!--
  3. function licz(x)
  4. {
  5. var Lancuch = new Array('0','83','174','276','388','512','650','801','969','1154') ;
  6. x.dane2.value=Lancuch[x.dane1.value];
  7. x.wynik.value=(x.dane1.value||0)+(x.dane2.value||0);
  8. }
  9. -->
  10. </head>
  11. <form>
  12. <input type="text" name="dane1" onkeyup="licz(this.form)">
  13. +
  14. <input type="text" name="dane2" onkeyup="licz(this.form)">
  15. =
  16. <input name="wynik" type="text">
  17. </form>
  18. </BODY>
  19. </HTML>
lubiemdziem
Przycisk "pomógł" to za mało. Serdeczne dzięki !

  1. <script languange="JavaScript" type="text/javascript">
  2. <!--
  3. function licz(x)
  4. {
  5. var Lancuch = new Array('0','83','174','276','388','512','650','801','969','1154') ;
  6. x.dane2.value=Lancuch[x.dane1.value];
  7. x.wynik.value = parseFloat(x.dane1.value) + parseFloat(x.dane2.value);
  8. }
  9. -->
  10. </head>
  11. <form>
  12. <input type="text" name="dane1" onkeyup="licz(this.form)">+
  13. <input type="text" name="dane2" onkeyup="licz(this.form)">=
  14. <input name="wynik" type="text">
  15. </form>
  16. </body>
  17. </html>


Okej, pojawił się drugi problem. Jako, że JS wcale nie ogarniam a inne języki programowania tak, dlatego znowu muszę poprosić Was o pomoc.

- W inpucie "dane2" gdy wpiszę liczbę (np) 500 zmieni liczbę w inpucie "dane1" na 4 (większa od 388 mniejsza od 512, znowu łańcuch)

Zapewne mam napisać funkcję, która będzie "latała" po łańcuchu i sprawdzała czy dana wartość jest większa lub równa podanej. Jeśli okaże się większa, zwraca poprzedni index łańcucha, jeśli będzie równy - zwróci aktualny

Jakiej funkcji/pętli/wyrażenia użyć? Doceniam wasz czas, dlatego wystarczą mi tylko wskazówki

Pozdrawiam
bpskiba
  1. <head>
  2. <script languange="JavaScript" type="text/javascript">
  3. <!--
  4. function licz(x)
  5. {
  6. var Lancuch = new Array('0','83','174','276','388','512','650','801','969','1154') ;
  7. x.dane2.value=Lancuch[x.dane1.value];
  8. x.wynik.value = parseFloat(x.dane1.value) + parseFloat(x.dane2.value);
  9. }
  10. function dwa(x)
  11. {
  12. var Lancuch = new Array(0,83,174,276,388,512,650,801,969,1154) ;
  13. var b=0;
  14. while(Lancuch[b]<x.dane2.value)
  15. b++;
  16. x.dane1.value=Lancuch[b-1];
  17. }
  18. -->
  19. </script>
  20. </head>
  21. <body>
  22. <form>
  23. <input type="text" name="dane1" onkeyup="licz(this.form)">+
  24. <input type="text" name="dane2" onkeyup="dwa(this.form)">=
  25. <input name="wynik" type="text">
  26. </form>
  27. </body>
  28. </html>
lubiemdziem
bpskiba, jestem Ci tak wdzięczny, że nie masz pojęcia jak bardzo .. na prawdę
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.