Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]jQuery zaznaczenie kilku 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 listę mulit select w której myszką za pomocą ctrl mogę zaznaczyć kilka opcji, a jak dokonać takiego efektu poprzez jQuery ?

Chciałbym żeby po kliknięciu w jakiś button zaznaczyła mi się opcja na liście, jak kliknę w inny button to żeby na tej samej liście zaznaczyła się następna opcja nie usuwając tamtej

Jeśli chodzi o zaznaczenie jednej opcji to robię to tak

$('#button1').click(function(){
var alt = $('#button1').attr('alt');
$('#select1 option:contains("'+alt+'")').attr('selected', true);
});

i zaznacza mi się opcja na liście która w nazwie ma to co button w alt, ale gdy kliknę w inny button to ta opcja wcześniejsza mi się kasuje i zaznacza opcja która ma w nazwie to co button2 w alt ... jak dodać zaznaczenie nie usuwając starego ?

Nie da się zaznaczyć kilku rzeczy w select poprzez js/jquery (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Niktoś
post
Post #2





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


http://jsfiddle.net/CfpXV/6/
Spójrz na kod jq i sobie dostosuj do swoich celów.
Go to the top of the page
+Quote Post
daniofantasy
post
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 14.06.2007
Skąd: Chesterfield UK

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


idac na czuja to zeby Ci sie nie kasowalo, musisz najpierw pobrac obecne zaznaczenia - np przeleciec calego selecta .each i jezeli ktoras z opcji jest zaznaczona, to zapisac ja np do tablicy i potem oprocz zaznaczanych elementow pobrac rowniez te co masz w tablicy z wczesniejszego selecta
Go to the top of the page
+Quote Post
Elber
post
Post #4





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

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


Cytat(daniofantasy @ 23.03.2012, 16:46:01 ) *
idac na czuja to zeby Ci sie nie kasowalo, musisz najpierw pobrac obecne zaznaczenia - np przeleciec calego selecta .each i jezeli ktoras z opcji jest zaznaczona, to zapisac ja np do tablicy i potem oprocz zaznaczanych elementow pobrac rowniez te co masz w tablicy z wczesniejszego selecta

No też tak myślę ale nie umiem tego dokonać, nie wiem jak pobrać i dopisać te rzeczy co są już zaznaczone (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
daniofantasy
post
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 14.06.2007
Skąd: Chesterfield UK

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


na moje oko to bedzie cos takiego:

  1. var aSelect = [];
  2. var x = 0;
  3. $('#select1').each(function() {
  4. aSelect[x] = $(this).find('option:contains("'+alt+'")').attr('selected');
  5. x++;
  6. });


i w aSelect powinienes miec elementy selecta
Go to the top of the page
+Quote Post
impro
post
Post #6





Grupa: Zarejestrowani
Postów: 39
Pomógł: 3
Dołączył: 21.11.2010

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


jak chcemy dostać się do kolejnych elementów zwracanych przez jqyery piszemy eq(numer elementu)
pomogło

  1. var i = 0;
  2. vat tablica = new Array;
  3. tablica[i] = $(this).find('option:contains("'+alt+'")').attr('selected').eq(i) // eg(i) napewno zwraca kolejne elementy ale nie wiem co oznacza reszta kodu eq powinno być zaraz za wyselksjonowanym elementem
  4. i++


Ten post edytował impro 23.03.2012, 17:19:38
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%)
-----


Nic nie chce zadziałać ;/ Nie ma jakiegoś prostego sposobu na dodanie zaznaczenia nie usuwając starych ?
Go to the top of the page
+Quote Post
d3ut3r
post
Post #8





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

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


o to chodziło ?

http://jsfiddle.net/SH7KM/3/

Ten post edytował d3ut3r 24.03.2012, 08:00:34
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%)
-----


Dokładnie o to (IMG:style_emoticons/default/smile.gif) Wielkie dzięki (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/yahoo.gif)

Hmm no i niby to trochę przerobiłem że jak jest już opcja 1 zaznaczona to zaznacza opcję 3.. http://jsfiddle.net/SH7KM/6/ .. ale u mnie to nie chce zadziałać ;/

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

Jak klikniesz na jakiś motyw np. różowy statek to na dole po prawej zaznacza się Hausbot +4,50 € a jak zaznaczysz np wróżkę to powinno być zaznaczone i Hausbot +4,50 € i Fee +4,50 € a zaznacza się tylko Fee +4,50 € (IMG:style_emoticons/default/sad.gif) Tak wygląda funkcja .click()

Kod
$('#hellux_letters img, #hellux_themes img').click(function(){
        var object_width = $(this).innerWidth();

        if(object_width < place_widh){
            place_widh = place_widh - object_width - 4;

            var src = $(this).attr('src');
            var alt = $(this).attr('alt');
            var alt2 = $(this).attr('alt2');
            var iid = $(this).attr('iid');

            var child = '<img src="' + src + '" alt="' + alt + '" alt2="' + alt2 + '" iid="'+ iid +'" />';
            $("#hellux_sortable").append(child);

            if($(this).attr('alt2') == 'theme'){
                $('#options_451_2').attr("checked", true);
                $('#options_451_2').click();
                theme = theme + 1;

                $("#select_386 option").each(function(){
                    if($("#select_386 option:contains('"+alt+"')").is(":not(:selected)")){
                       $("#select_386 option:contains('"+alt+"')").attr("selected", true);
                    }
                });

                $("#select_386 option").change();

            } else if($(this).attr('alt2') == 'letter'){
                $('#options_389_2').attr("checked", true);
                $('#options_389_2').click();
                letter = letter + 1;
                $('#options_464_text').val($('#options_464_text').val() + $(this).attr('alt'));

                if(color == 'pink'){
                    $('#options_463_3').attr("checked", true);
                    $('#options_463_3').click();
                } else {
                    $('#options_463_2').attr("checked", true);
                    $('#options_463_2').click();
                }
            }
        } else {
            alert('za mało miejsca');
        }
    });


Co robię źle (IMG:style_emoticons/default/questionmark.gif)

Kompletnie nikt nie wie jak to zrobić ? ;(

Ten post edytował Elber 24.03.2012, 09:57:43
Go to the top of the page
+Quote Post
Necsord
post
Post #10





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


Nie wiem czy to jedyny problem bo bałagan jest niesamowity jeżeli mam być szczery.

  1. $('#options_451_2').attr("checked", true);
  2. $('#options_451_2').click();
  3. theme = theme + 1;
  4.  
  5. $("#select_386 option").each(function(){
  6. if($("#select_386 option:contains('"+alt+"')").is(":not(:selected)")){
  7. $("#select_386 option:contains('"+alt+"')").attr("selected", true);
  8. }
  9. });
  10.  
  11. $("#select_386 option").change();


Przed każdym zaznaczaniem wywołujesz $('#options_451_2').click(); czyli jeżeli dobrze rozumiem naciskasz przycisk "Ja" przy "Motive hinzufügen". To teraz zrób tak:
1) Wybierz jakiś element czyli multiselekt będzie miał 1 element zaznaczony.
2) Nacisnij wyżej wymieniony "Ja"
Zauważysz ze on powoduje wyczyszczenie / przeładowanie ( nie wnikałem co on robi ) selektora.
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%)
-----


Faktycznie ... to było przyczyną ... dziękuję że to zauważyłeś, a to że tam jest bałagan to wiem (IMG:style_emoticons/default/biggrin.gif) Ale uporządkuję to na końcu jak wszystko będzie działało (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 01:34