login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[JQuery] Selectbox disabled totdat een waarde bij andere selectbox is gekozen

Offline jc2 - 13/10/2009 22:09 (laatste wijziging 13/10/2009 22:54)
Avatar van jc2PHP interesse Ik heb de volgende code van jqueryui.com gedownload om toe te passen op mijn site:
  1. function makeSublist(parent,child,isSubselectOptional,childVal)
  2. {
  3. $("body").append("<select style='display:none;' id='"+parent+child+"'></select>");
  4. $('#'+parent+child).html($("#"+child+" option"));
  5.  
  6. var parentValue = $('#'+parent).attr('value');
  7. $('#'+child).html($("#"+parent+child+" .sub_"+parentValue).clone());
  8.  
  9. childVal = (typeof childVal == "undefined")? "" : childVal ;
  10. $("#"+child).val(childVal).attr('selected','selected');
  11.  
  12. $('#'+parent).change(function(){
  13. var parentValue = $('#'+parent).attr('value');
  14. $('#'+child).html($("#"+parent+child+" .sub_"+parentValue).clone());
  15. if(isSubselectOptional) $('#'+child).prepend("<option value='none' selected='selected'> -- Select -- </option>");
  16.  
  17. $('#'+child).trigger("change");
  18. $('#'+child).focus();
  19. });
  20. }


Ik heb namelijk 3 selectboxen die ik afhankelijk gemaakt heb van elkaar. Dit wil zeggen dat wanneer je in selectbox 1 een waarde selecteert, selectbox 2 wordt gevuld met waardes die betrekking hebben op de keuze bij selectbox 1.
Voor selectbox 3 geldt hetzelfde, maar dan met betrekking tot selectbox 2.
Nu is het zo dat alle 3 de selectboxen standaard enabled weergeven worden, ook wanneer selectbox 2 of 3 geen waarde bevatten.
Nu wil ik dat selectbox 2 pas geënabled wordt wanneer er bij selectbox 1 een keuze gemaakt is én dat selectbox 3 geënabled wordt wanneer er bij selectbox 2 een keuze gemaakt.

Update:
Inmiddels heb ik voor elkaar gekregen dat de selectboxen afhankelijk zijn van elkaar en geënabled worden wanneer selectbox 1 gewijzigd wordt.
Nu wil ik ook dat wanneer selectbox 2 geen waarde heeft, de selectbox gedisabled blijft.
Ik heb dit zo geprobeerd:
  1. $('#'+parent).change(function(){
  2. if ( $('#'+child).selectedValues() == false) {
  3. $('#'+child).attr("disabled",false);
  4. var parentValue = $('#'+parent).attr('value');
  5. $('#'+child).html($("#"+parent+child+" .sub_"+parentValue).clone());
  6.  
  7. $('#'+child).trigger("change");
  8. $('#'+child).focus();
  9. }
  10. else{
  11. $('#'+child).attr("disabled",true);
  12. var parentValue = $('#'+parent).attr('value');
  13. $('#'+child).html($("#"+parent+child+" .sub_"+parentValue).clone());
  14.  
  15. $('#'+child).trigger("change");
  16. $('#'+child).focus();
  17. }
  18. });


Helaas krijg ik dan deze foutmelding:
Deze eigenschap of methode wordt niet ondersteund door dit object.

Weten jullie hoe je met JQuery kunt controleren of een selectbox leeg is of niet?

2 antwoorden

Gesponsorde links
Offline Rik - 14/10/2009 10:37
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Even wat geprobeerd:
  1. <form>
  2. <select multiple="multiple" name="test">
  3. <option value="bla0">bla</option>
  4. <option value="bla1">bla</option>
  5. <option value="bla2">bla</option>
  6. <option value="bla3">bla</option>
  7. </select>
  8. </form>
  9. <a id="check" href="#" />check</a>
  1. $('document').ready(function () {
  2. $('#check').click(function () {
  3. alert($('select option:selected').length);
  4. });
  5. });
Dus als $('select option:selected').length 0 teruggeeft is er niets geselecteerd. Daar moet je alleen nog even je eigen parent / child selectie van maken.

Die fout die je krijgt, daar zou een regelnummer bij moeten staan. Nu is het een beetje gissen waar het fout gaat.
Offline jc2 - 14/10/2009 16:28 (laatste wijziging 16/10/2009 16:29)
Avatar van jc2 PHP interesse Ik heb de code zoals hij nu is online gezet, met een flash-animatie van hoe ik het ongeveer zou willen hebben.
Hij is te bezichtigen op deze pagina.
Door op de rechtermuisknop te klikken, kun je de javascript- en HTML-code bekijken.

De code zelf is bewerkt a.d.h.v. de originele code van: AjaxRay.com.

Update:
Ik zou graag willen dat op het moment dat je de pagina laadt, enkel de provincie-selectbox actief is.
Op het moment dat je dan een provincie gekozen hebt, moet de gemeente-selectbox actief worden, indien deze selectbox NIET leeg is.
Heb je dan een gemeente gekozen, dan moet je een plaats kunnen selecteren, behalve wanneer de plaats-selectbox leeg is.
En zo uiteindelijk hetzelfde voor het schooltype.

Wie heeft een idee hoe ik dit kan bereiken?
De manier van Rik heeft helaas niet geholpen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.172s