Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: <input type='button' /> PROBLEM NR..2
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
damianooo
Witam

Mam taki kod java script:

  1. function add_zam_2 (inn,v) {
  2.  
  3. var el = document.getElementById(inn);
  4. var a;
  5. a = v;
  6. el.value = (Number(el.value) + a);
  7. }
  8.  
  9.  
  10. function sub_zam_2 (inn,v) {
  11.  
  12. var el = document.getElementById(inn);
  13. var a;
  14. a = v;
  15.  
  16. if (el.value == a)
  17. {
  18. a;
  19. }
  20. else
  21. {
  22. el.value = (Number(el.value) - a);
  23. }
  24. }


oraz dwa przyciski (jeden do zwiększania wartości w polach a drugi do zmniejszania)


  1. $a = 5;
  2.  
  3. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  4. echo "<input type='button' value='' onclick=\"add_zam_2('Elem',".$a.");return false;\" style='width:100%;height:100%;background-image: url(img/sub_dod.png);background-repeat: no-repeat;border:none;'/>";
  5. echo "</div>";
  6. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  7. echo "<input type='button' value='' onclick=\"sub_zam_2('Elem',".$a.");return false;\" style='width:100%;height:100%;background-image: url(img/sub_odejm.png);background-repeat: no-repeat;border:none;'/>";
  8. echo "</div>";




Do tego będzie wiele pól takich:

  1. echo "<center><input type='text' id='Elem' readonly='readonly' name='ilosc[]' value='4' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  2.  
  3. echo "<center><input type='text' id='Elem' readonly='readonly' name='ilosc[]' value='5' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  4.  
  5. echo "<center><input type='text' id='Elem' readonly='readonly' name='ilosc[]' value='6' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";



I teraz tak:
Chciałbym aby po kliknięciu na przyciski zwiększały się lub zmniejszały odpowiednio wszystkie pola z wartościami jednocześnie w tym samym czasie.

Wydaje mi się że musi być wspólny element ID , czyli o tej samej nazwie ale niestety to nie działa ...

proszę o pomoc jak to powinienem rozwiązać

dzięki
nospor
Id jak sama nazwa wskazuje ma być UNIKALNE i nie może być kilku elementów o tym samym ID.
Nadaj klasę dla elementów i wyszukuj elementy po klasie a nie po id.

Gdybyś używał jQuery to wyszukanie elementów o danym ID sprowadza się do:
jQuery('.klasa')
damianooo
czy mogę prosić o przykład ... bo nie bardzo chyba wiem jak się do tego zabrać ...

czyli rozumiem że mam stworzyć klasę z metodą taką jak mam obecnie funkcje napisaną ... i wówczas odwoływać się w miejscu onclick : onclick=\"sub_zam_2('Elem',5);return false;\" poprzez klasę czyli np. jak klasa ZwiekszZmniejsz to bedzie ZwiekszZmniejsz.sub_zam2 ... lub coś tego typu ... dobrze rozumiem ?


P.S.
Przepraszam za wysyłanie pytań indywidualnie na skrzynkę. To się nie powtórzy. Proszę jednak o pomoc jeszcze w tym temacie ...

dzięki, pozdrawiam
nospor
onclick=\"sub_zam_2('KlasaElementu',5);return false;\"
A w funkcji szukasz elementów po klasie i im zmieniasz wartości.
Jak szukać napisałem ci wcześniej na przykładzie jQuery
damianooo
ok mniej więcej chyba kumam jednak po mojej zmianie nie działa .. zastanawiam się czy nie powinienem dodać biblioteki jQuery jeszcze aby to ruszyło ... jednak prosiłbym jeszcze Ciebie o spojrzenie na te zmiany czy właśnie o to chodziło:

Oto cały kod do testu:


  1. <TITLE>Test Input</TITLE>
  2.  
  3. <script LANGUAGE="JavaScript">
  4.  
  5.  
  6. function add_zam_2 (inn,v) {
  7.  
  8. s = jQuery('.inn');
  9.  
  10. var a;
  11. a = v;
  12. s.value = (Number(s.value) + a);
  13. }
  14.  
  15.  
  16. function sub_zam_2 (inn,v) {
  17.  
  18. s = jQuery('.inn');
  19.  
  20. var a;
  21. a = v;
  22.  
  23. if (s.value == a)
  24. {
  25. a;
  26. }
  27. else
  28. {
  29. s.value = (Number(s.value) - a);
  30. }
  31. }
  32.  
  33.  
  34.  
  35. </HEAD>
  36.  
  37.  
  38. <?php
  39.  
  40. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:1.5em;background-color:white;color:#378347;'>";
  41. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  42. echo "<input type='button' value='' onclick=\"add_zam_2('Elem',5);return false;\" style='width:100%;height:100%;background-image: url(img/sub_dod.png);'/>";
  43. echo "</div>";
  44. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  45. echo "<input type='button' value='' onclick=\"sub_zam_2('Elem',5);return false;\" style='width:100%;height:100%;background-image: url(img/sub_odejm.png);'/>";
  46. echo "</div>";
  47. echo "</div>";
  48.  
  49. echo "<br />";
  50. echo "<br />";
  51. echo "<br />";
  52.  
  53. // tutaj pojawi się tyle pól ile będzie pobranych z bazy danych więc dla wyobrażenia podam to w pętli FOR
  54. for ($i=0;$i<3;$i++)
  55. {
  56. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  57. echo "<center><input type='text' id='Elem$i' readonly='readonly' name='ilosc[]' value='5' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  58. echo "</div>";
  59. }
  60.  
  61. ?>
  62.  
  63.  
  64. </BODY>
  65. </HTML>




ale właśnie , jeśli teraz nie po ID to teraz nie id='Elem$i' tylko ma być class='Elem$i' ? ... hmm ,... nie wiem
nospor
Cytat
zastanawiam się czy nie powinienem dodać biblioteki jQuery

Historyjka:
nospor - wsiądź na rower i jedź do lasu
ktoś - ok, fajna rada, ale nie działa.... zastanawiam się czy nie powinienem wpierw zaopatrzyć się w rower, jak myślisz?

co do kodu zaś, to s.value nie zadziała. Zainteresuj się w manualu jQuery czyms takim jak each()

Przecież ci pisałem, że masz nadać jedną i tą samą klasę dla elementów, bez żadnych $i.

I jeszcze co do kodu:
nie: s = jQuery('.inn');
a: s = jQuery('.'+inn);
damianooo
Chyba jestem już bliżej niż dalej ale jeszcze to nie to ... dokonałem zmian w uwagach które napisałeś ... chyba problem będzie w kodzie javascript ..


  1.  
  2. <TITLE>Test Input</TITLE>
  3.  
  4. <script type="text/javascript" charset="UTF-8" src="http://code.jquery.com/jquery-1.6.4.js"></script>
  5.  
  6. <script LANGUAGE="JavaScript">
  7.  
  8.  
  9. function add_zam_2 (inn,v) {
  10.  
  11. s = jQuery('.'+inn);
  12.  
  13. var a;
  14. a = v;
  15.  
  16.  
  17. $.each(s, function(value) {
  18. value + a;
  19. });
  20.  
  21. }
  22.  
  23.  
  24. function sub_zam_2 (inn,v) {
  25.  
  26. s = jQuery('.'+inn);
  27.  
  28. var a;
  29. a = v;
  30.  
  31. $.each(s, function(value) {
  32.  
  33. if (value == a)
  34. {
  35. a;
  36. }
  37. else
  38. {
  39. value = (Number(value) - a);
  40. }
  41.  
  42. });
  43.  
  44. }
  45.  
  46.  
  47.  
  48.  
  49.  
  50. </HEAD>
  51.  
  52.  
  53. <?php
  54.  
  55. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:1.5em;background-color:white;color:#378347;'>";
  56. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  57. echo "<input type='button' value='' onclick=\"add_zam_2('Elem',5);return false;\" style='width:100%;height:100%;background-image: url(img/sub_dod.png);'/>";
  58. echo "</div>";
  59. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  60. echo "<input type='button' value='' onclick=\"sub_zam_2('Elem',5);return false;\" style='width:100%;height:100%;background-image: url(img/sub_odejm.png);'/>";
  61. echo "</div>";
  62. echo "</div>";
  63.  
  64. echo "<br />";
  65. echo "<br />";
  66. echo "<br />";
  67.  
  68. // tutaj pojawi się tyle pól ile będzie pobranych z bazy danych więc dla wyobrażenia podam to w pętli FOR
  69. for ($i=0;$i<3;$i++)
  70. {
  71. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  72. echo "<center><input type='text' class='Elem' readonly='readonly' name='ilosc[]' value='5' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  73. echo "</div>";
  74. }
  75.  
  76. ?>
  77.  
  78.  
  79. </BODY>
  80. </HTML>
  81.  
  82.  
  83.  
  84.  
  85.  



nie wiem też czy tylko wystarczy w inpucie dać po prostu: class='Elem' ....
nospor
Kod
function add_zam_2 (inn,v) {
s = jQuery('.'+inn);
s.each(function(){
  var el = jQuery(this);
  el.val(Number(el.val()) + v);
});
}
damianooo
super ... dzięki za pomoc ... nie wiem tylko czemu w funkcji drugiej czyli: sub_zam_2 w sekcji: if else wykonuje mi ciągle zmniejszanie a wyraźnie zaznaczyłem że jak el.val == v (czyli liczbie początkowej poniżej której nie można schodzić)


  1.  
  2. function sub_zam_2 (inn,v) {
  3.  
  4. s = jQuery('.'+inn);
  5.  
  6. s.each(function() {
  7.  
  8. var el = jQuery(this);
  9.  
  10. if (el.val == v)
  11. {
  12. v;
  13. }
  14. else
  15. {
  16. el.val(Number(el.val()) - v);
  17. }
  18.  
  19. });
  20.  
  21. }
  22.  
nospor
Zobacz jak ja używam val a jak ty.
damianooo
ok już wiem smile.gif co robiłem źle el.val to jest funkcja a więc ma być tak: el.val()

całość:

  1.  
  2. function sub_zam_2 (inn,v) {
  3.  
  4. s = jQuery('.'+inn);
  5.  
  6. s.each(function() {
  7.  
  8. var el = jQuery(this);
  9.  
  10. if (el.val() == v)
  11. {
  12. v;
  13. }
  14. else
  15. {
  16. el.val(Number(el.val()) - v);
  17. }
  18.  
  19. });
  20.  
  21. }
  22.  



teraz wszystko działa ładnie ...

jeszcze raz wielkie dzięki i dzięki za cierpliwość ..

pozdro

ale ... chyba to jeszcze nie koniec ...

całość wygląda tak:


  1.  
  2. <TITLE>Test Input</TITLE>
  3.  
  4. <script type="text/javascript" charset="UTF-8" src="http://code.jquery.com/jquery-1.6.4.js"></script>
  5.  
  6. <script LANGUAGE="JavaScript">
  7.  
  8.  
  9. function add_zam_2 (inn,v) {
  10.  
  11. s = jQuery('.'+inn);
  12. s.each(function()
  13. {
  14. var el = jQuery(this);
  15. el.val(Number(el.val()) + v);
  16. });
  17.  
  18. }
  19.  
  20.  
  21. function sub_zam_2 (inn,v) {
  22.  
  23. s = jQuery('.'+inn);
  24.  
  25. s.each(function() {
  26.  
  27. var el = jQuery(this);
  28.  
  29. if (el.val() == v)
  30. {
  31. v;
  32. }
  33. else
  34. {
  35. el.val(Number(el.val()) - v);
  36. }
  37.  
  38. });
  39.  
  40. }
  41.  
  42.  
  43.  
  44.  
  45.  
  46. </HEAD>
  47.  
  48.  
  49. <?php
  50.  
  51. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:1.5em;background-color:white;color:#378347;'>";
  52. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  53. echo "<input type='button' value='' onclick=\"add_zam_2('Elem',5);return false;\" style='width:100%;height:100%;background-image: url(img/sub_dod.png);'/>";
  54. echo "</div>";
  55. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  56. echo "<input type='button' value='' onclick=\"sub_zam_2('Elem',5);return false;\" style='width:100%;height:100%;background-image: url(img/sub_odejm.png);'/>";
  57. echo "</div>";
  58. echo "</div>";
  59.  
  60. echo "<br />";
  61. echo "<br />";
  62. echo "<br />";
  63.  
  64.  
  65. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  66. echo "<center><input type='text' class='Elem' readonly='readonly' name='ilosc[]' value='5' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  67. echo "</div>";
  68. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  69. echo "<center><input type='text' class='Elem' readonly='readonly' name='ilosc[]' value='4' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  70. echo "</div>";
  71. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  72. echo "<center><input type='text' class='Elem' readonly='readonly' name='ilosc[]' value='2' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  73. echo "</div>";
  74.  
  75.  
  76. ?>
  77.  
  78.  
  79. </BODY>
  80. </HTML>
  81.  
  82.  
  83.  
  84.  
  85.  





dlaczego w pierwszym polu wartości nie zmniejszają się poniżej wartości podanej , natomiast w dwóch pozostałych maleją questionmark.gif ...


nospor
Wybacz za pytanie, możesz mnie odebrać jako chama i prostaka, ale muszę:
czy ty myślisz?

Dajesz warunek:
el.val() == v
5 == 5 tak
4 == 5 tak?
2 == 5 tak?
damianooo
nie nie uznam Ciebie za chama i prostaka domyślam się że ludzie, którzy są w danym temacie prawie całkowicie obeznani mogą reagować tak właśnie ... także luz ...


sprawdziłem dla pewności smile.gif ... w google jak w javascript tworzy się instrukcje warunkowe i zdaje sie że tak jak napisałem ale fakt możliwe że to trochę źle zrealizowałem

a więc zrobiłem tak :

  1.  
  2. function sub_zam_2 (inn,v) {
  3.  
  4. s = jQuery('.'+inn);
  5.  
  6. s.each(function() {
  7.  
  8. var el = jQuery(this);
  9. var w;
  10. w = v;
  11.  
  12. if (w == v)
  13. {
  14. v;
  15. }
  16. else
  17. {
  18. el.val(Number(el.val()) - v);
  19. }
  20.  
  21. });
  22.  
  23. }
  24.  
  25.  





i jest lepiej .. jednak nie do końca ponieważ jak zwiększe to już nie zmniejsza mi do wartosci początkowej tylko zostaje przy tej zwiększonej ...
nospor
Chyba się nie rozumiemy...
dałeś warunek porównania 4==5 i się dziwisz, czemu nie jest sprawdzony...
Jesli nie chcesz zmniejszać pól, których wartość jest mniejsza równa 5 to ma być tak 4<=5
damianooo
ok fakt ... ale jeszcze jedna rzecz której chyba nie wytłumaczyłem na początku ...

tam gdzie jest (chodzi mi o tą wartość "5")

  1.  
  2. onclick=\"add_zam_2('Elem',5);return false;\"
  3.  



to ma być dla każdego z pól wpisana wartość taka jaka jest w tym polu na początku, czyli

- jak jest 5 to ma sie zwiększać o 5
- jak jest 4 to ma się zwiekszac o 4
itd.
nospor
Znowu nie myślisz..... 4==5 dawałem jak przykład. Ty masz miec el.val() <= v
damianooo
ale właśnie tak zrobiłem i nie działa smile.gif ... sorry że nie napisałem jak wygląda kod po zmianie, bo wróciłem do wcześniejszej wersji:

a więc tak jest teraz:


  1.  
  2. function sub_zam_2 (inn,v) {
  3.  
  4. s = jQuery('.'+inn);
  5.  
  6. s.each(function() {
  7.  
  8. var el = jQuery(this);
  9.  
  10. if (el.val() <= v)
  11. {
  12. v;
  13. }
  14. else
  15. {
  16. el.val(Number(el.val()) - v);
  17. }
  18.  
  19. });
  20.  
  21. }
  22.  
nospor
el.val() to tekst. Musisz go wpierw zamienic na liczbę, chocby przy pomocy parseInt
damianooo
a za pomocą "Number" ?

  1.  
  2. function sub_zam_2 (inn,v) {
  3.  
  4. s = jQuery('.'+inn);
  5.  
  6. s.each(function() {
  7.  
  8. var el = jQuery(this);
  9.  
  10. if (Number(el.val()) <= v)
  11. {
  12. v;
  13. }
  14. else
  15. {
  16. el.val(Number(el.val()) - v);
  17. }
  18.  
  19. });
  20.  
  21. }
  22.  
nospor
A zadziałało? No to może być
Nie zadziało? No to nie może być
tongue.gif
damianooo
ale musimy w tym miejscu coś zmienic

  1.  
  2. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:1.5em;background-color:white;color:#378347;'>";
  3. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  4. echo "<input type='button' value='' onclick=\"add_zam_2('Elem',5);return false;\" style='width:100%;height:100%;background-image: url(img/sub_dod.png);'/>";
  5. echo "</div>";
  6. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  7. echo "<input type='button' value='' onclick=\"sub_zam_2('Elem',5);return false;\" style='width:100%;height:100%;background-image: url(img/sub_odejm.png);'/>";
  8. echo "</div>";
  9. echo "</div>";
  10.  


bo tam cały czas jest liczba 5


w takim razie chyba tą piątkę trzeba będzie wywalić z tamtąd i zrobić wczytywanie jednego tylko parametru
nospor
A co ci znowu ta 5 przeszkadza?
damianooo
chodzi mi o to że nie może być podanej stałej wartości o jaką mają się zwiększać wszystkie wartości w polach

tak jak pisałem ma być tak:

- jesli w polu jest wartosć 5 to ma sie zwiekszac wartosc w polu o 5
- jesli w polu jest wartosc 4 to ma sie zwiekszac wartosc w polu o 4

itd.


zmieniłem więc tak :



  1.  
  2. <TITLE>Test Input</TITLE>
  3.  
  4. <script type="text/javascript" charset="UTF-8" src="http://code.jquery.com/jquery-1.6.4.js"></script>
  5.  
  6. <script LANGUAGE="JavaScript">
  7.  
  8.  
  9. function add_zam_2 (inn) {
  10.  
  11. s = jQuery('.'+inn);
  12.  
  13. s.each(function()
  14. {
  15. var el = jQuery(this);
  16. el.val(Number(el.val()) + Number(el.val()));
  17. });
  18.  
  19. }
  20.  
  21.  
  22. function sub_zam_2 (inn) {
  23.  
  24. s = jQuery('.'+inn);
  25.  
  26. s.each(function() {
  27.  
  28. var el = jQuery(this);
  29.  
  30. if (Number(el.val()) <= Number(el.val()))
  31. {
  32. Number(el.val());
  33. }
  34. else
  35. {
  36. el.val(Number(el.val()) - Number(el.val()));
  37. }
  38.  
  39. });
  40.  
  41. }
  42.  
  43.  
  44.  
  45.  
  46.  
  47. </HEAD>
  48.  
  49.  
  50. <?php
  51.  
  52. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:1.5em;background-color:white;color:#378347;'>";
  53. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  54. echo "<input type='button' value='' onclick=\"add_zam_2('Elem');return false;\" style='width:100%;height:100%;background-image: url(img/sub_dod.png);'/>";
  55. echo "</div>";
  56. echo "<div style='float:left;padding:0;margin:0;width:1.5em;height:0.75em;background-color:white;color:#378347;'>";
  57. echo "<input type='button' value='' onclick=\"sub_zam_2('Elem');return false;\" style='width:100%;height:100%;background-image: url(img/sub_odejm.png);'/>";
  58. echo "</div>";
  59. echo "</div>";
  60.  
  61. echo "<br />";
  62. echo "<br />";
  63. echo "<br />";
  64.  
  65.  
  66. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  67. echo "<center><input type='text' class='Elem' readonly='readonly' name='ilosc[]' value='5' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  68. echo "</div>";
  69. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  70. echo "<center><input type='text' class='Elem' readonly='readonly' name='ilosc[]' value='4' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  71. echo "</div>";
  72. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  73. echo "<center><input type='text' class='Elem' readonly='readonly' name='ilosc[]' value='2' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  74. echo "</div>";
  75.  
  76.  
  77. ?>
  78.  
  79. </BODY>
  80. </HTML>
  81.  
  82.  
  83.  
  84.  
  85.  



jest lepiej bo teraz pola się zwiekszaja o tyle ile jest wartośc w danym polu podana , jednak jest tak że po zwiekszeniu nie chce wrócić do początkowej wartości ..
nospor
Cytat
jednak jest tak że po zwiekszeniu nie chce wrócić do początkowej wartości ..
A teraz przełóż to na polski smile.gif

if (Number(el.val()) <= Number(el.val()))
Przecież teraz porównujesz liczbę x z liczbą x. One są zawsze równe więc i ten warunek jest zawsze równy i nigdy nie dojdzie do zmniejszenia.
damianooo
chyba będzie problem ponieważ jednak zwiększanie też nie działa tak jak powinno ...

jak zwiększę inputa z wartością 5 o 5 to jak będzie 10 to następnie zwiększa się o 10 a nie dalej o pięć i powstaje taki ciąg: 5,10,20,40 itd .. a ja chcę aby było 5,10,15,20 itd.
nospor
No to dla input oprócz value ustawiaj też startvalue i zwiększaj/zmniejszaj o tę wartość.
Zeby dobrać sie do dowolnego parametru masz użyć funkcji attr() - patrz manual jquery
damianooo
hmm startValue ... ale gdzie to ustawić ? ...
nospor
obok value.....
....value="2" startvalue="2"....
damianooo
dodałem tak:

  1. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  2. echo "<center><input type='text' class='Elem' readonly='readonly' name='ilosc[]' value='5' startValue='5' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  3. echo "</div>";
  4. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  5. echo "<center><input type='text' class='Elem' readonly='readonly' name='ilosc[]' value='4' startValue='4' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  6. echo "</div>";
  7. echo "<div style='float:left;padding:0;margin:0;width:5.9em;height:1.5em;border:1px solid #378347;background-color:white;color:#378347;text-align:right;'>";
  8. echo "<center><input type='text' class='Elem' readonly='readonly' name='ilosc[]' value='2' startValue='2' maxlength=6 style='width:6.6em;height:1.3em;color:#378347;text-align:right;'></center>";
  9. echo "</div>";


i zmieniłem skrypt tak:


  1. function add_zam_2 (inn) {
  2.  
  3. s = jQuery('.'+inn);
  4.  
  5. s.each(function()
  6. {
  7. var el = jQuery(this);
  8. var x = Number(el.attr(startvalue));
  9.  
  10. el.val(Number(el.val()) + x);
  11. });
  12.  
  13. }




ale chyba źle się dobrałem do funkcji attr()
nospor
w inpucie dajesz startValue, w kodzie js piszesz startvalue

znajdź 10 różnic
startvalue
startValue
Proszę cię - skup się trochę, bo mi się wkoncu to znudzi.


Dodatkowo w kodzie js ma być to tekst, czyli 'startvalue' a nie startvalue

damianooo
ok super jest .... teraz jest wszystko tak jak być powinno ...


  1. function add_zam_2 (inn) {
  2.  
  3. s = jQuery('.'+inn);
  4.  
  5. s.each(function()
  6. {
  7. var el = jQuery(this);
  8. var x = Number(el.attr('startValue'));
  9.  
  10. el.val(Number(el.val()) + x);
  11. });
  12.  
  13. }
  14.  
  15.  
  16. function sub_zam_2 (inn) {
  17.  
  18. s = jQuery('.'+inn);
  19.  
  20. s.each(function() {
  21.  
  22. var el = jQuery(this);
  23. var x = Number(el.attr('startValue'));
  24.  
  25. if (Number(el.val()) <= x)
  26. {
  27. x;
  28. }
  29. else
  30. {
  31. el.val(Number(el.val()) - x);
  32. }
  33.  
  34. });
  35.  
  36. }



myślę, że temat zamknięty ... wprowadzę teraz całość zmian do mojej aplikacji i jeśli będzie mi działać tak jak chciałem to zakończę ten wątek ...

jeszcze raz dzięki

ok mogę już potwierdzić że działa w mojej aplikacji tak jak powinno ... dzięki

pozdrawiam
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.