Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][HTML] Zmiana koloru tła - jak to zrobić?
-davido-
post 3.06.2014, 11:47:22
Post #1





Goście







Witam

Proszę o pomoc w zmianie kodu
Chcę osiągnąć zmianę koloru tła w polu wyniku,
w zależności od przedziału np. od 0 do 100 kolor zielony, od 101 do 500 kolor czerwony, powyżej 500 kolor niebieski.

  1. <title>wylicz</title>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
  4. <script src="https://developer.mozilla.org/pl/docs/Web/JavaScript/Dokumentacja_j%C4%99zyka_JavaScript_1.5/Obiekty/Number/toFixed"></script>
  5.  
  6. <script type="text/javascript">
  7. //<![CDATA[
  8.  
  9. //]]>
  10. $('document').ready(function(){
  11. $('input').keyup(function(){
  12. value = parseFloat($('#n1').val())*4
  13. + parseFloat($('#n2').val())*8
  14. + parseFloat($('#n3').val())*11;
  15.  
  16.  
  17.  
  18.  
  19. $('#suma').html(value.toFixed(2));
  20. });
  21. });
  22.  
  23.  
  24. <script type="text/javascript">
  25.  
  26. function check(obj)
  27. {
  28. var suma = obj.value;
  29. if(suma >= 0 )
  30. {
  31. obj.style.backgroundColor="green";
  32. }
  33. else if(suma > 100 < 500 )
  34. {
  35. obj.style.backgroundColor="red";
  36. }
  37. else if(suma <=501 )
  38. {
  39. obj.style.backgroundColor="blue";
  40. }
  41. }
  42. </head>
  43.  
  44.  
  45. <table align="center" border="1" cellpadding="0" cellspacing="0" style="width:400px">
  46. <tr>
  47. <th> aaa </th><th> bbb </th> <th> ccc </th> <th>ddd</th>
  48. </tr>
  49. <tr>
  50. <td align="center" >adc</td> <td align="center" >fff</td> <td align="center" width="50px" >ggg</td> <td align="center" > <input id='n1' type='text' size="1" maxlength="3" value='0'></td>
  51. </tr>
  52. <tr>
  53. <td align="center">aas</td> <td align="center">ccd</td><td align="center">ggg</td> <td align="center"><input id='n2' type='text' size="1" value='0'></td>
  54. </tr>
  55. <tr>
  56. <td align="center">ghj</td> <td align="center">tgt</td><td align="center">hhh</td> <td align="center"><input id='n3' type='text'size="1" value='0'></td>
  57. </tr>
  58. <tr>
  59. <td align="center" > <big>razem</big> </td> <td align="center" ><span id='suma' onkeyup="check(this);" maxlength="6"></span></td>
  60.  
  61. </tr>
  62.  
  63.  
  64.  
  65. </body>
  66. </html>
Go to the top of the page
+Quote Post
johny_s
post 3.06.2014, 12:48:34
Post #2





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

Ostrzeżenie: (0%)
-----


span nie obsługuje zdarzenia onkeyup
Go to the top of the page
+Quote Post
PrinceOfPersia
post 3.06.2014, 13:34:04
Post #3





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


główny problem jest w tym, że masz zabałaganiony kod.

to jest do wywalenia, przez pomyłkę ci się musiało dodać:
Cytat
<script src="https://developer.mozilla.org/pl/docs/Web/JavaScript/Dokumentacja_j%C4%99zyka_JavaScript_1.5/Obiekty/Number/toFixed"></script>


onkeyup na tym spanie co masz, jest totalnie bez sensu. key(klawisz) up(do góry, odciśnięty). wywal to, funkcje check mozesz wywolac inaczej.

w warunkach funkcji check masz iles bledow, to raczej tak powinno byc:
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. //<![CDATA[
  3.  
  4. //]]>
  5. $('document').ready(function(){
  6. $('input').keyup(function(){
  7.  
  8. value = parseFloat($('#n1').val())*4
  9. + parseFloat($('#n2').val())*8
  10. + parseFloat($('#n3').val())*11;
  11.  
  12.  
  13.  
  14. check(this, value); // WYWOLUJEMY FUNKCJE CHECK!!!!!
  15. $('#suma').html(value.toFixed(2));
  16. });
  17. });
  18.  
  19. </script>
  20.  
  21. <script type="text/javascript">
  22.  
  23. function check(obj, value)
  24. {
  25. var suma = value;
  26. if(suma >= 0 && suma <= 100)
  27. {
  28. obj.style.backgroundColor="green";
  29. }
  30. else if(suma > 100 && suma < 500 )
  31. {
  32. obj.style.backgroundColor="red";
  33. }
  34. else if(suma >=501 )
  35. {
  36. obj.style.backgroundColor="blue";
  37. }
  38. }
  39. </script>
  40.  
  41.  
[JAVASCRIPT] pobierz, plaintext


Ten post edytował PrinceOfPersia 3.06.2014, 13:34:37


--------------------
Go to the top of the page
+Quote Post
-davido-
post 3.06.2014, 15:11:21
Post #4





Goście







Dzięki za zainteresowanie

Wprowadziłem zmiany
ale efekt, jest nie taki jakiego oczekuje.
Zmieniają się kolory w input n1 ,n2 ,n3
a ja chcę zmienić kolor w wyniku span id="suma"
Go to the top of the page
+Quote Post
PrinceOfPersia
post 3.06.2014, 16:32:48
Post #5





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


musisz tak zrobic, zeby argument "obj" w funkcji "check" wskazywal z powrotem na element span.
czyli zamiast this, podajesz $("$suma")[0] :
[JAVASCRIPT] pobierz, plaintext
  1. check($('#suma')[0], value);
[JAVASCRIPT] pobierz, plaintext

(dlatego [0] w nawiasach zeby zamienic obiekt jQuery na zwykly element DOM, czyli odwolujesz sie do zerowego indeksu tego co jQuery zwraca)


--------------------
Go to the top of the page
+Quote Post
-davido-
post 3.06.2014, 20:27:13
Post #6





Goście







O to chodziło biggrin.gif
Wielkie dzięki
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 30.04.2025 - 10:41