Thread View: pl.comp.lang.javascript
16 messages
16 total messages
Started by aaaa
Thu, 03 Mar 2011 14:27
jQuery html() zwraca stary kod
Author: aaaa
Date: Thu, 03 Mar 2011 14:27
Date: Thu, 03 Mar 2011 14:27
8 lines
1069 bytes
1069 bytes
Hej Mam kawalek kodu html. Pobieram go uzywajac .html() i dostaje go poprawnie. Jesli jednak wpisze cos do pol input w tym htmlu i zrobie .html() to dostaje to, co bylo na poczatku przy zaladowaniu dokumentu. Z czego to wynika? -- A
Re: jQuery html() zwraca stary kod
Author: zpk
Date: Fri, 04 Mar 2011 10:32
Date: Fri, 04 Mar 2011 10:32
13 lines
1738 bytes
1738 bytes
On 3 Mar, 15:27, "aaaa" <a...@aaaaaaaaaaaaaaaaaaa.com> wrote: > Hej > Mam kawalek kodu html. Pobieram go uzywajac .html() i dostaje go poprawnie. > Jesli jednak wpisze cos do pol input w tym htmlu i zrobie .html() to dostaje > to, co bylo na poczatku przy zaladowaniu dokumentu. > Z czego to wynika? > > -- > A Z niczego. Po wysłaniu danych formularza okno odświeża swój widok. Paweł
Re: jQuery html() zwraca stary kod
Author: aaaa
Date: Fri, 04 Mar 2011 12:55
Date: Fri, 04 Mar 2011 12:55
17 lines
1348 bytes
1348 bytes
Użytkownik "zpk" <zpksoft@op.pl> napisał
>Z niczego. Po wysłaniu danych formularza okno odświeża swój widok.
Nie ma zadnego formularza, strona nie jest odswiezana.
Jest sobie wiersz tabelki:
<tr id="cos">
<td><input type="text" value="5">
$('#cos').html() daje wynik poprawny
ale jak wpisze w tym inpucie np. 7 i zrobie:
$('#cos').html() to otrzymuje kod HTML z cyferka 5, a nie 7.
--
A
Re: jQuery html() zwraca stary kod
Author: Jakub Tarczewski
Date: Fri, 04 Mar 2011 13:56
Date: Fri, 04 Mar 2011 13:56
24 lines
1939 bytes
1939 bytes
>
> Nie ma zadnego formularza, strona nie jest odswiezana.
> Jest sobie wiersz tabelki:
>
> <tr id="cos">
> <td><input type="text" value="5">
>
> $('#cos').html() daje wynik poprawny
>
> ale jak wpisze w tym inpucie np. 7 i zrobie:
>
> $('#cos').html() to otrzymuje kod HTML z cyferka 5, a nie 7.
>
ależ masz formularz, a raczej jego fragment (input), a błąd polega na
tym, że danych z tego inputa nigdzie nie wysyłasz, więc jak mógłbyś je
dostać z powrotem?
najprościej: żeby serwer zwrócił Ci jakieś dane, najpierw musisz je na
serwerze umieścić. Jeśli pobierasz dane z serwera, są takie jakie tam
umieściłeś, a umieściłeś 'value = 5'. 'value = 7' było tylko w
przeglądarce, i jak jeszcze raz pobrałeś dane (stare, bo nowych na
serwerze nie ma, są *tylko* w Twojej przeglądarce), została przywrócona
stara wartość, a nowa poszła w krzaki, bo nie miała gdzie indziej pójść.
Czy to mniej więcej zrozumiałe?
Re: jQuery html() zwraca stary kod
Author: aaaa
Date: Fri, 04 Mar 2011 14:02
Date: Fri, 04 Mar 2011 14:02
32 lines
2426 bytes
2426 bytes
Użytkownik "Jakub Tarczewski" <anhin@onet.eu> napisał w wiadomości
news:ikqr1s$1qb$1@news.onet.pl...
> ależ masz formularz, a raczej jego fragment (input), a błąd polega na tym,
> że danych z tego inputa nigdzie nie wysyłasz, więc jak mógłbyś je dostać z
> powrotem?
> najprościej: żeby serwer zwrócił Ci jakieś dane, najpierw musisz je na
> serwerze umieścić. Jeśli pobierasz dane z serwera, są takie jakie tam
> umieściłeś, a umieściłeś 'value = 5'. 'value = 7' było tylko w
> przeglądarce, i jak jeszcze raz pobrałeś dane (stare, bo nowych na
> serwerze nie ma, są *tylko* w Twojej przeglądarce), została przywrócona
> stara wartość, a nowa poszła w krzaki, bo nie miała gdzie indziej pójść.
> Czy to mniej więcej zrozumiałe?
Pewnie, ze zrozumiale, tylko, ze ja tego nigdzie na serwer NIE WYSYLAM!
Tak wyglada strona:
<table>
<tr id="cos">
<td><input type="text" value="5"></td>
</tr>
</table>
<input type="button" value="KLIK" onClick="alert( $('#cos').html() )">
Wczytuje strone do przegladarki, klikam guzik- pokazuje sie kod HTML z
value=5
Wpisuje z palca wartosc 7, klikam guzik- nadal pokazuje sie kod HTML z
value=5
--
A
Re: jQuery html() zwraca stary kod
Author: Jakub Tarczewski
Date: Fri, 04 Mar 2011 14:08
Date: Fri, 04 Mar 2011 14:08
24 lines
1770 bytes
1770 bytes
>
> Pewnie, ze zrozumiale, tylko, ze ja tego nigdzie na serwer NIE WYSYLAM!
> Tak wyglada strona:
>
> <table>
> <tr id="cos">
> <td><input type="text" value="5"></td>
> </tr>
> </table>
>
> <input type="button" value="KLIK" onClick="alert( $('#cos').html() )">
>
> Wczytuje strone do przegladarki, klikam guzik- pokazuje sie kod HTML z
> value=5
> Wpisuje z palca wartosc 7, klikam guzik- nadal pokazuje sie kod HTML z
> value=5
>
>
no przecież właśnie to Ci napisałem! Skąd ma się wziąć na serwerze
wartość której tam NIE wysyłasz? Może przeczytaj jeszcze raz to co
napisałem, tylko powoli. A przy okazji może się zastanów nad tym skąd
się bierze to co wyświetla przeglądarka.
Re: jQuery html() zwraca stary kod
Author: Jakub Tarczewski
Date: Fri, 04 Mar 2011 14:36
Date: Fri, 04 Mar 2011 14:36
14 lines
1723 bytes
1723 bytes
>
> Pewnie, ze zrozumiale, tylko, ze ja tego nigdzie na serwer NIE WYSYLAM!
> Tak wyglada strona:
>
hmmm... a zastanowiłeś się co to jest .html()?
Jeśli chcesz zmienić wartość .html(), musisz to zrobić *jawnie* tzn
umieścić w kodzie "$('#cos').html(NOWA_ZAWARTOŚĆ_HTML)", a przedtem
zdefiniować NOWA_ZAWARTOŚĆ_HTML. Jeśli tego nie zrobisz,
$('#cos').html() pozostaje takie jakie było, bo niby dlaczego miałoby
się zmieniać od samej zmiany wartości inputa? Mógłbyś np. przypisać
funkcję zmieniającą html() zmianie wartości inputa. Z tworzeniem stringa
ze zmienioną wartością "value', powinieneś, jak sądzę, sobie poradzić.
Re: jQuery html() zwraca stary kod
Author: aaaa
Date: Fri, 04 Mar 2011 17:22
Date: Fri, 04 Mar 2011 17:22
22 lines
2610 bytes
2610 bytes
Użytkownik "Jakub Tarczewski" <anhin@onet.eu> napisał w wiadomości
news:ikqtdg$a35$1@news.onet.pl...
> hmmm... a zastanowiłeś się co to jest .html()?
> Jeśli chcesz zmienić wartość .html(), musisz to zrobić *jawnie* tzn
> umieścić w kodzie "$('#cos').html(NOWA_ZAWARTOŚĆ_HTML)", a przedtem
> zdefiniować NOWA_ZAWARTOŚĆ_HTML. Jeśli tego nie zrobisz, $('#cos').html()
> pozostaje takie jakie było, bo niby dlaczego miałoby się zmieniać od samej
> zmiany wartości inputa? Mógłbyś np. przypisać funkcję zmieniającą html()
> zmianie wartości inputa. Z tworzeniem stringa ze zmienioną wartością
> "value', powinieneś, jak sądzę, sobie poradzić.
Na moj chlopski rozum, to zmiana value stanowi zmiane wartosci atrybutu i
kazda zmiana wartosci atrybutu elementu HTML powinna zostac odwzorowana w
kodzie HTML zwracanym przez jQuery'owskie html() lub tez natywne
innerHTML().
Mi chodzi jedynie o to, ze w pewnym momencie chce zrobic zrzut calego kodu
HTML danego rzedu tabelki. A html() kodu aktualnego nie daje. Aktualnego,
czyli takiego, ktorego wykonanie da ten sam efekt, ktory widze w
przegladarce.
--
A
Re: jQuery html() zwraca stary kod
Author: kbec
Date: Fri, 04 Mar 2011 20:53
Date: Fri, 04 Mar 2011 20:53
1 lines
1571 bytes
1571 bytes
Wtrącę się: próbowałeś pobrać wartość inputa przez $('#cos').val() ?
Re: jQuery html() zwraca stary kod
Author: kbec
Date: Fri, 04 Mar 2011 21:06
Date: Fri, 04 Mar 2011 21:06
5 lines
1908 bytes
1908 bytes
Dodam jeszcze, że prawdopodobnie wynika to z tego, że pobierasz kod html, który się nie zmienia przy zmianie wartości pola. Wartość jest przechowywana w pamięci niezależnie. Reasumując: wpisanie wartości nie zmienia atrybutu value, ale zmiana atrybutu value zmienia przechowywaną w pamięci wartość.
Re: jQuery html() zwraca stary kod
Author: porneL
Date: Fri, 04 Mar 2011 22:50
Date: Fri, 04 Mar 2011 22:50
17 lines
1588 bytes
1588 bytes
On Fri, 04 Mar 2011 17:22:48 -0000, aaaa <aaaa@aaaaaaaaaaaaaaaaaaa.com>
wrote:
> Na moj chlopski rozum, to zmiana value stanowi zmiane wartosci atrybutu
> i kazda zmiana wartosci atrybutu elementu HTML powinna zostac
> odwzorowana w kodzie HTML zwracanym przez jQuery'owskie html()
<input value=""> w DOM to input.defaultValue lub
input.getAttribute('value') (w IE może być jeszcze śmieszniej, aż nie mam
odwagi sprawdzać).
input.value nie ma odpowiadającego mu atrybutu w HTML.
Wynalazcy DOM0 niestety chłopskich rozumów nie mieli.
--
regards, porneL
Re: jQuery html() zwraca stary kod
Author: aaaa
Date: Fri, 04 Mar 2011 23:10
Date: Fri, 04 Mar 2011 23:10
15 lines
1831 bytes
1831 bytes
Użytkownik "porneL" <niusy5@pornel.net> napisał
> <input value=""> w DOM to input.defaultValue lub
> input.getAttribute('value') (w IE może być jeszcze śmieszniej, aż nie mam
> odwagi sprawdzać).
>
> input.value nie ma odpowiadającego mu atrybutu w HTML.
>
> Wynalazcy DOM0 niestety chłopskich rozumów nie mieli.
Aham, czyli 2 mozliwosci:
1. html() + replace zeby zmienic value
2. petla po elementach i reczne klejenie htmla
--
A
Re: jQuery html() zwraca stary kod
Author: porneL
Date: Sat, 05 Mar 2011 01:08
Date: Sat, 05 Mar 2011 01:08
25 lines
1791 bytes
1791 bytes
On Fri, 04 Mar 2011 23:10:47 -0000, aaaa <aaaa@aaaaaaaaaaaaaaaaaaa.com>
wrote:
>> <input value=""> w DOM to input.defaultValue lub
>> input.getAttribute('value') (w IE może być jeszcze śmieszniej, aż nie
>> mam odwagi sprawdzać).
>>
>> input.value nie ma odpowiadającego mu atrybutu w HTML.
>>
>> Wynalazcy DOM0 niestety chłopskich rozumów nie mieli.
>
> Aham, czyli 2 mozliwosci:
> 1. html() + replace zeby zmienic value
> 2. petla po elementach i reczne klejenie htmla
HTML to nie jest tekst, który się zamienia albo klei.
Jak chcesz mieć zmieniony atrybut value, to go zmień:
$('input').each(function(){
this.setAttribute('value', this.value)
});
--
regards, porneL
Re: jQuery html() zwraca stary kod
Author: aaaa
Date: Sat, 05 Mar 2011 13:38
Date: Sat, 05 Mar 2011 13:38
17 lines
2081 bytes
2081 bytes
Użytkownik "porneL" <niusy5@pornel.net> napisał w wiadomości
news:op.vruirukyvq69rq@aimac.local...
> On Fri, 04 Mar 2011 23:10:47 -0000, aaaa <aaaa@aaaaaaaaaaaaaaaaaaa.com>
> HTML to nie jest tekst, który się zamienia albo klei.
>
> Jak chcesz mieć zmieniony atrybut value, to go zmień:
>
> $('input').each(function(){
> this.setAttribute('value', this.value)
> });
Nie chce miec zmienionego atrybutu, chce miec "zrzut" / "obraz", tego co
widac na stronie w postaci stringa, ktory sobie moge zapisac do bazy.
I chodzi mi o zrzut calej tabelki, a nie samej wartosci value inputa.
--
A
Re: jQuery html() zwraca stary kod
Author: porneL
Date: Sat, 05 Mar 2011 16:31
Date: Sat, 05 Mar 2011 16:31
20 lines
1703 bytes
1703 bytes
On Sat, 05 Mar 2011 13:38:47 -0000, aaaa <aaaa@aaaaaaaaaaaaaaaaaaa.com>
wrote:
>> HTML to nie jest tekst, który się zamienia albo klei.
>>
>> Jak chcesz mieć zmieniony atrybut value, to go zmień:
>>
>> $('input').each(function(){
>> this.setAttribute('value', this.value)
>> });
>
> Nie chce miec zmienionego atrybutu
chcesz, tylko o tym nie wiesz ;)
Nie da się dokładnie przestawić stanu DOM za pomocą stringu. Da się tylko
zrobić coś podobnego za pomocą odpowiedniej manipulacji atrybutami.
--
regards, porneL
Re: jQuery html() zwraca stary kod
Author: aaaa
Date: Sun, 06 Mar 2011 11:32
Date: Sun, 06 Mar 2011 11:32
13 lines
1799 bytes
1799 bytes
Użytkownik "porneL" <niusy5@pornel.net> napisał >> Nie chce miec zmienionego atrybutu > > chcesz, tylko o tym nie wiesz ;) > > Nie da się dokładnie przestawić stanu DOM za pomocą stringu. Da się tylko > zrobić coś podobnego za pomocą odpowiedniej manipulacji atrybutami. No ok, niech Ci bedzie :) Dzieki! -- A
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads