Versio

Jquery select option toevoegen

Overzicht Reageren

Yea Rupie

Yea Rupie

03/07/2010 15:06:51
Quote Anchor link
Beste forumers,

Ik heb hier eens scriptje waarmee ik options toevoeg aan een select box.
Helaas werkt hij niet helemaal, de opties komen er niet in.

Weet iemand wat ik hier fout in doe?
Alvast bedankt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$(document).ready(function(){
    $(".diensten").change(function()
    {
        var message_index
 
        message_index = $(".diensten").val();
        $("#extra").empty();
        $("#extra").attr("disabled", false);
 
        if(message_index > 0){
        
            var myOptions = {
                1 : 'Schoonmaak bedrijfshal',
                2 : 'Reguliere schoonmaak'
            };
            $.each(myOptions, function(val, text) {
                $('#extra').append(
                    $('<option></option>').val(val).html(text)
                );
            });
        }
    });
});


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Specifieke dienst: <select id="extra" disabled="disabled"><option value="0">-</option></select>
 
PHP hulp

PHP hulp

25/05/2012 01:13:13
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Karl Karl

Karl Karl

03/07/2010 19:27:39
Quote Anchor link
Het kan zo zijn dat je element niet veranderd.
Maar ik denk dat het komt door:
$("#extra").attr("disabled", false);
Nu zet je dus de waarde van disabled op false, want het is geen property van dat element, maar gewoon een waarde die je in de tag zet.
Dus je moet die attribute verwijderen.
Zie de jquery docs: http://docs.jquery.com
 
Yea Rupie

Yea Rupie

03/07/2010 23:12:51
Quote Anchor link
Dit staat erin, om de select box actief te maken, deze werk goed..
Als ik hem eruit haal werkt het nog steeds niet,
 
Karl Karl

Karl Karl

03/07/2010 23:18:28
Quote Anchor link
Je moet removeAttr gebruiken.
Verder weet ik niet wat de classe diensten heeft, en of die dus veranderd.
Bij mij, in een simpele test was dit het enige probleem (afgezien van die rotzooi die ik er omheen weg moest halen).
 
Yea Rupie

Yea Rupie

03/07/2010 23:34:24
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$(document).ready(function(){
    $(".diensten").change(function()
    {
        var message_index
 
        message_index = $(".diensten").val();
        $("#extra").empty().removeAttr("disabled");
 
        if(message_index > 0){
        
            var myOptions = {
                1 : 'Schoonmaak bedrijfshal',
                2 : 'Reguliere schoonmaak'
            };
            $.each(myOptions, function(val, text) {
                $('#extra').append(
                    $('<option></option>').val(val).html(text)
                );
            });
        }
    });
});



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<select class="diensten" name="Dienst1[1]">
<option value="0" selected="selected" disabled="disabled">-</option>
<option value="Huishoudelijke hulp">Huishoudelijke hulp</option>
<option value="Persoonlijke diensten">Persoonlijke diensten</option>
<option value="Klussen">Klussen</option><option value="Tuinhulp">Tuinhulp</option>
<option value="Verhuishulp">Verhuishulp</option><option value="Oppas">Oppas</option>
<option value="Huiswerkbegeleiding">Huiswerkbegeleiding</option>
</select>

Het enige probleem is dat hij de options moet toevoegd.
 
Yea Rupie

Yea Rupie

04/07/2010 10:24:22
Quote Anchor link
Ik heb hem wat veranderd, maar hij werkt nog niet..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$(document).ready(function(){
    $(".diensten").change(function()
    {
        var message_index
 
        message_index = $(".diensten").val();
        $(".specific").empty();
 
        if(message_index > 0){
        
            var myOptions = {
                1 : 'Schoonmaak bedrijfshal',
                2 : 'Reguliere schoonmaak'
            };
            $('.specific').html('<select name="specific">');
            $.each(myOptions, function(val, text) {
                
                $('.specific').append('<option value="' + val +'">' + text +'</option>');
            });
            $('.specific').append('</select>');
        }
    });
});


De selectbox is nu weg en ik heb er een div van gemaakt.
Weet iemand hoe ik dit kan oplossen.
 
Piet Verhagen

Piet Verhagen

04/07/2010 11:51:21
Quote Anchor link
Regel 15 t/m 20 kloppen niet. Zo als jij het in elkaar zet, werkt het niet. Je moet complete html in 1 keer toevoegen. Niet in stukjes. Dus ofwel je maakt eerst een lege string, bouwd die op zoals jij doet met die each en voegt die toe met html(). Ofwel je voegt eerst de select element in en vervolgens met append voeg je hier children aan toe. Het mag / kan nooit zo wezen dat er op een gegeven moment een niet gesloten select tag in de DOM staat.

Dit zou correcte code zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
            $('.specific').html('<select name="specific"></select>');
            $.each(myOptions, function(val, text) {
                $('.specific > select').append('<option value="' + val +'">' + text +'</option>');
            });

of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
            var tmp = '<select name="specific">';
            $.each(myOptions, function(val, text) {
                tmp += '<option value="' + val +'">' + text +'</option>';
            });
            tmp += '</select>';
            $('.specific').html(tmp);
Gewijzigd op 04/07/2010 11:57:19 door Piet Verhagen
 
Yea Rupie

Yea Rupie

04/07/2010 14:14:55
Quote Anchor link
Heel erg bedankt, de eerste code werkt perfect :)
 



Overzicht Reageren

Get Adobe Flash player