Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Problem w porostym zadaniu
Forum PHP.pl > Forum > Przedszkole
stefik4
Witam. Dopieor zaczynam swoją przygodę z JSem i napisałem sobie taki skrypt i nie wiem dlaczego nie działa sad.gif

w head:
  1. <script>
  2. function licz(){
  3. kredyt = document.getElementById("kredyt").value;
  4. rat = document.getElementById("rat").value;
  5.  
  6. wyniq = kredyt/rat;
  7.  
  8. document.getElementById('rat').innerHTML=rat;
  9. document.getElementById('kredyt').innerHTML=kredyt;
  10. document.getElementById('wyniq').innerHTML=wyniq; //zapisuje wynik w span-ie o id="wynik"
  11.  
  12. }
  13.  
  14. </script>


w body:
  1. <table width="100%" id="table">
  2. <tr>
  3. <td style="text-align: right;" id="plus">Wpisz kwotę kredytu:</td>
  4. <td><input size="20" MAXLENGTH="20" id="kredyt" type="text" value="" onkeyup="licz();"></td>
  5. </tr>
  6.  
  7. <tr><td style="text-align: right;" id="plus">Ilośc rat:</td>
  8. <td><select id="rat" onchange="licz();">
  9.  
  10. <option VALUE="12">12</option>
  11.  
  12. <option VALUE="24">24</option>
  13.  
  14. <option VALUE="36">36</option>
  15.  
  16. </select></td>
  17. </tr>
  18. <tr><td></td><td></td></tr>
  19. <tr>
  20. <td style="text-align: right;" id="plus">wybrałeś ilośc rat:</td>
  21. <td><span id="rat"></span></td>
  22. </tr>
  23. <tr>
  24. <td style="text-align: right;" id="plus">Kredyt wzieles:</td>
  25. <td><span id="kredyt"></span></td>
  26. </tr>
  27.  
  28. <tr>
  29. <td style="text-align: right;" id="plus">rata wyniesie:</td>
  30. <td><span id="wyniq"></span></td>
  31. </tr>
  32.  
  33.  
  34. </table>


Edytka nie działa wiec piszę: działanie: http://www.helper.unl.pl/pro/test.php
kamil4u
1. Musisz zamienić wartości na liczby
2. To jest niepoprawne:
Kod
document.getElementById('rat').innerHTML=rat;
pokombinuj z tym(potrzebne zmiany w tym kodzie)
Cytat
function selectOption(id,num)
{
id = document.getElementById(id);
id.selectedIndex = num;
}
Burned
Cytat(kamil4u @ 17.10.2009, 11:24:43 ) *
1. Musisz zamienić wartości na liczby
2. To jest niepoprawne:
Kod
document.getElementById('rat').innerHTML=rat;
pokombinuj z tym(potrzebne zmiany w tym kodzie)


1. Nie musi - js poradzi sobie z tym sam.
2. To jest absolutnie poprawny zapis. Problem leży gdzie indziej - podstawy html - masz kilka elementów o tym samym id. Zarówno elementy formularza, jak i span'y, w których js ma wyświetlić wyniki mają identyczne id - nic dziwnego, że nie działa.

popraw na mniej więcej cośtakiego:
CODE
<script>
function licz(){
var kredyt = document.getElementById("kredyt").value;
var rat = document.getElementById("rat").value;
var wyniq = kredyt/rat;

document.getElementById('show_rat').innerHTML=rat;
document.getElementById('show_kredyt').innerHTML=kredyt;
document.getElementById('show_wyniq').innerHTML=wyniq; //zapisuje wynik w span-ie o id="wynik"
}

</script>

  1. <table width="100%" id="table">
  2. <tr>
  3. <td style="text-align: right;" id="plus">Wpisz kwotę kredytu:</td>
  4. <td><input size="20" maxlength="20" id="kredyt" type="text" onkeyup="licz();"></td>
  5. </tr>
  6.  
  7. <tr><td style="text-align: right;" id="plus">Ilośc rat:</td>
  8. <td><select id="rat" onchange="licz()">
  9. <option value="12">12</option>
  10. <option value="24">24</option>
  11. <option value="36">36</option>
  12. </select></td>
  13. </tr>
  14. <tr><td></td><td></td></tr>
  15. <tr>
  16. <td style="text-align: right;" id="plus">wybrałeś ilośc rat:</td>
  17. <td><span id="show_rat"></span></td>
  18. </tr>
  19. <tr>
  20. <td style="text-align: right;" id="plus">Kredyt wzieles:</td>
  21. <td><span id="show_kredyt"></span></td>
  22. </tr>
  23.  
  24. <tr>
  25. <td style="text-align: right;" id="plus">rata wyniesie:</td>
  26. <td><span id="show_wyniq"></span></td>
  27. </tr>
  28.  
  29.  
stefik4
Dzięki bardzo winksmiley.jpg
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.