Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]zmiana inputa po odkliknięciu
Forum PHP.pl > Forum > Przedszkole
Randallmaster
Witam,

Nie wiem jak dokładnie to wytłumaczyć, ale mam nadzieję że zrozumiecie.

Posiadam takie coś:



no i tak.

Uznajemy że pozostało do zapłaty: 111 zł
teraz klikam na pole pokaz_zaplacono i wpisuje: 12 zł

Po kliknięciu enter chciałbym aby pozostało do zapłaty automatycznie się zmieniło na 99 zł

W jaki sposób mogę osiągnąć ten wynik?
tvister
Podczas eventu onkeypress (lub coś takiego ) należy rozpoznać jaki to klawisz(kod) został naciśnięty oraz ustawić na niego akcje.
Randallmaster
Zapomniałem dodać że pracuje na jquery ;/
no i generalnie ucze się jquery
Randallmaster
czemu nie działa??

  1. $("pokaz_zaplacono").keydown(function(){
  2. var zap = $('#pokaz_zaplacono').val();
  3. zaplacono = eval(123 - zap);
  4. $("pozostalo").val(zaplacono);
  5. });
SmokAnalog
Bo "pokaz_zaplacono" to nie tag smile.gif Powinno być $("#pokaz_zaplacono").
b4rt3kk
Jeśli opakujesz ten input i submit w form to wtedy możesz za pomocą jQuery przechwycić wysłanie formularza (czyli wciśnięcie ENTER), inny sposób:

  1. $(function() {
  2. $('#pokaz_zaplacono').keyup(function() {
  3. $('#pozostalo').html(111 - parseInt($(this).val()));
  4. });
  5. });


Sposób z form:

  1. <form action="#" method="POST" id="formularz">
  2. <input id="pokaz_zaplacono" type="text" />
  3. <input type="submit" />
  4. </form>
  5. <p id="pozostalo"></p>
  6.  
  7. <script type="text/javascript">
  8. $(function() {
  9. $('#formularz').submit(function() {
  10. $('#pozostalo').html(111 - parseInt($('#pokaz_zaplacono').val()));
  11.  
  12. return false;
  13. });
  14. });
Randallmaster
hmm wciśnięcie enter może źle to napisałem, klikam w pole w pisuje np. 12 i klikam gdziekolwiek indziej poza tym polem i od razu mi wylicza..
b4rt3kk
Cytat(Randallmaster @ 14.01.2013, 13:55:27 ) *
hmm wciśnięcie enter może źle to napisałem, klikam w pole w pisuje np. 12 i klikam gdziekolwiek indziej poza tym polem i od razu mi wylicza..


Więc ta funkcja spełni Twoje oczekiwania:

  1. $(function() {
  2. $('#pokaz_zaplacono').blur(function() {
  3. $('#pozostalo').html(111 - parseInt($(this).val()));
  4. });
  5. });
Randallmaster
Cytat(b4rt3kk @ 14.01.2013, 14:50:08 ) *
Więc ta funkcja spełni Twoje oczekiwania:

  1. $(function() {
  2. $('#pokaz_zaplacono').blur(function() {
  3. $('#pozostalo').html(111 - parseInt($(this).val()));
  4. });
  5. });


hmmm. twoja funkcja niestety nie spełnia moich oczekiwań.. natomiast prawie udało mi się zrobić ale popełniam gdzieś głupi błąd. Mój kod:

  1. $("#pokaz_zaplacono").focusout(function() {
  2. var zap = $('#pokaz_zaplacono').val();
  3. $("#pozostalo").val(eval(zap.val()+2));
  4. });


w polu $('#pokaz_zaplacono') wpisuje np. 5 a w polu pozostało pokazuje mi 52 czyli dodaje liczby ale nie do siebie tylko tak jakby traktuje jako tekst...
b4rt3kk
Cytat(Randallmaster @ 14.01.2013, 15:40:08 ) *
hmmm. twoja funkcja niestety nie spełnia moich oczekiwań.. natomiast prawie udało mi się zrobić ale popełniam gdzieś głupi błąd. Mój kod:

  1. $("#pokaz_zaplacono").focusout(function() {
  2. var zap = $('#pokaz_zaplacono').val();
  3. $("#pozostalo").val(eval(zap.val()+2));
  4. });


w polu $('#pokaz_zaplacono') wpisuje np. 5 a w polu pozostało pokazuje mi 52 czyli dodaje liczby ale nie do siebie tylko tak jakby traktuje jako tekst...


  1. var zap = parseInt($('#pokaz_zaplacono').val());
  2. $("#pozostalo").val(eval(zap+2));
Randallmaster
Bartek Powodzenie! W końcu działa smile.gif

Widzę że nie znałem tylko jednej pozycji: parseInt() do czego jest ta funkcja?? smile.gif
b4rt3kk
Cytat(Randallmaster @ 14.01.2013, 15:51:20 ) *
Bartek Powodzenie! W końcu działa smile.gif

Widzę że nie znałem tylko jednej pozycji: parseInt() do czego jest ta funkcja?? smile.gif


Jest to funkcja JS, wymusza typ zmiennej, w tym przypadku INTEGER. Jeśli będziesz używał liczb zmiennoprzecinkowych wtedy użyj parseFloat().
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.