Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]jQuery zmiana opcji w select...
Elber
post
Post #1





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Witam,

mam pole select i w nim dwie opcje jak zmienić za 'zaznaczyć' jedną z tych opcji poprzez jQuery, tak aby wykonały się funkcję jak przy zmianie tego pola 'ręcznie' myszką ?
Próbuję

$('#attribute964 option[value="ID"]').attr("selected","selected");

zmienia zawartość, ale nie wykonują się funkcje przypisane do tego pola ;/

Ten post edytował Elber 22.03.2012, 15:21:58


--------------------
GG: 564555
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Żeby zaznaczyć jakąś wartosc w select to:
Kod
$('#idtwojegoselecta').val('wartoscdozaznaczenia');

A jakie zdarzenie podpiąłeś? Bo jak onclick to logiczne ze nie dziala. Jak onchange to powinno zadziałać dla mojego kodu (chyba)
Jak dałeś onclick to:
Kod
$('#idtwojegoselecta').val('wartoscdozaznaczenia');
$('#idtwojegoselecta').click(); //lub coś w ten desen



--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Elber
post
Post #3





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Właśnie nie wiem jakie zdarzenie tam jest, bo to w sklepie magento w widoku produktu, po zmianie tego selecta zmienia się cena ...

Kod
$('#idtwojegoselecta').val('wartoscdozaznaczenia');
$('#idtwojegoselecta').click(); //lub coś w ten desen

nie działa, znaczy select się zmienia ale funkcje sie nie wykounją ...


--------------------
GG: 564555
Go to the top of the page
+Quote Post
d3ut3r
post
Post #4





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Jeżeli jest to podpięte pod onchange to powinno zadziałać:

Kod
$('#idtwojegoselecta').val('nowa_wartość');
$('#idtwojegoselecta').change();


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
Elber
post
Post #5





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Próbowałem już...ale nie działa ;/

A jak mogę sprawdzić co dokładnie się dzieje po zmianie tego selecta ? Jakie funkcje sie wykonują


--------------------
GG: 564555
Go to the top of the page
+Quote Post
Sky_walker
post
Post #6





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


Firebug

Console->Enable
potem klikasz Profile
robisz rzeczy na stronie i klikasz Profile ponownie
w rezultacie otrzymujesz listę odpalonych funkcji wraz z ich wydajnością.

Poza tym konsola pokaże ci błędy Java Script - skopiuj jakie ci wyskakują i pokaż nam, może będziemy mogli pomóc smile.gif

Ten post edytował Sky_walker 22.03.2012, 16:14:12


--------------------
Pomogłem? Kliknij poniżej.
Dzięki! :D
Go to the top of the page
+Quote Post
Elber
post
Post #7





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Nie ma żadnych błędów JS wink.gif


--------------------
GG: 564555
Go to the top of the page
+Quote Post
jaslanin
post
Post #8





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


o coś takiego ci chodzi?

http://jsfiddle.net/EfRSq/


--------------------
Good luck and happy PHP'ing
Go to the top of the page
+Quote Post
Elber
post
Post #9





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Niestety też tylko zmienia select'a a cena zostaje bez zmian... podaję linka do tego, to jest kopia tego sklepu

http://www.hellux.home.pl/hansekind/german...arderobe-1.html

Chodzi o to że jak się klinie w 3 Hacken lub 5 Hacken zmienia się wielkość tej belki gdzie układa się te litery i motywy, i po prawej na dole jest cena i jeszcze niżej jest *Länge i tam jest select do wyboru, jak się tam ręcznie wybierze Garderobe 5 Haken (63cm) +10.00 € to cena się zmienia, ale jak w jQuery to zmienie to cena się nie zmienia sad.gif


--------------------
GG: 564555
Go to the top of the page
+Quote Post
jaslanin
post
Post #10





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


z tego co zauważyłem, to żeby cena była zmieniana wywoływana jest funkcja:

Kod
onchange="opConfig.reloadPrice()"


może to pomoże


--------------------
Good luck and happy PHP'ing
Go to the top of the page
+Quote Post
Elber
post
Post #11





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


nawet jak po $('#idtwojegoselecta').val('nowa_wartość'); dam opConfig.reloadPrice(); to nic się nie dzieje sad.gif

Nikt nie ma pomysłu jak to zrobićquestionmark.gif


--------------------
GG: 564555
Go to the top of the page
+Quote Post
maviozo
post
Post #12





Grupa: Zarejestrowani
Postów: 197
Pomógł: 24
Dołączył: 22.11.2010

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


$().trigger("change") próbowałeś?
Go to the top of the page
+Quote Post
Kostek.88
post
Post #13





Grupa: Zarejestrowani
Postów: 376
Pomógł: 47
Dołączył: 23.08.2007
Skąd: Warszawa

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


Cholera... Fiddle mi się nie odpala, zatem nie testowałem...

  1. $('#attribute964 option[value="ID"]').attr("selected","selected").focus();


questionmark.gif
Go to the top of the page
+Quote Post
d3ut3r
post
Post #14





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Obsługą zdarzenia zajmuje się prototype, dlatego odpalanie zdarzenia z jquery nie działa tak jak powinno.

Twój problem można rozwiązać tak jak napisano tutaj:

http://stackoverflow.com/questions/460644/...-with-prototype



--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
Elber
post
Post #15





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Cytat(d3ut3r @ 23.03.2012, 01:36:59 ) *
Obsługą zdarzenia zajmuje się prototype, dlatego odpalanie zdarzenia z jquery nie działa tak jak powinno.

Twój problem można rozwiązać tak jak napisano tutaj:

http://stackoverflow.com/questions/460644/...-with-prototype

O którym sposobie dokładnie mówisz ?

Nic nie działa wyskakują błędy jakieś ;/

Co mam zrobić aby ta cena mi się zmieniła po zmianie tego pola poprzez jQuery ? o co z tym prototype chodzi ?

Ten post edytował Elber 23.03.2012, 08:17:53


--------------------
GG: 564555
Go to the top of the page
+Quote Post
d3ut3r
post
Post #16





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


w linku który Ci dałem, masz napisane jak za pomocą prototype wywołać zdarzenie czyli zdarzenie typu Click , onchange etc.

Po kolei:
1. ściągasz plik: https://github.com/kangax/protolicious/blob...ent.simulate.js
2. includujesz go u siebie
3. a następnie odpalasz metodą .simulate('onchange') na obiekcie który zmieniałeś za pomocą jQuery.

Powinno zadziałać


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
Elber
post
Post #17





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Próbowałem już tak, dostaje w konsoli error:

Uncaught TypeError: Object #<Object> has no method 'simulate'

OK rozwiązane ;D

wystarczyło dodać na początku funkcję:

Kod
function triggerEvent(element, eventName)
{
    if (document.createEvent)
    {
        var evt = document.createEvent('HTMLEvents');
        evt.initEvent(eventName, true, true);

        return element.dispatchEvent(evt);
    }

    if (element.fireEvent)
        return element.fireEvent('on' + eventName);
}


i później ją wywołać:

triggerEvent(document.getElementById('id_selecta'), 'change');


--------------------
GG: 564555
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 Aktualny czas: 19.08.2025 - 16:13