2012-12-19 10 views
5

Ok, więc mam kod jQuery, który wyświetla pole wprowadzania, jeśli wybrano element z prefiksem Blue z menu rozwijanego.Wyświetl x jeśli x wyświetla y, jeśli y (zły tytuł wiem)

Kod:

$(function() { 
    $('#text1').hide(); 
    $('#select2').on('change', function(event) { 
     var opt = this.options[ this.selectedIndex ]; 
     var picked_blue = $(opt).text().match(/Blue/i); 
     if(picked_blue) { 
      $('#text1').show(); 
     } else { 
      $('#text1').hide(); 
     } 
    }); 
}); 

Ale co ja też trzeba dodać, aby wyświetlić coś innego, jeśli wybrano jakikolwiek inny element z menu rozwijanego. A to, co muszę wyświetlić, to kolejne rozwijane menu przedmiotów.

+1

co chcesz wyświetlić? po prostu umieść go wewnątrz 'else' –

+0

Umieścić go w" else "? – MrCode

+0

'Muszę również dodać, aby wyświetlić coś innego' co to jest? –

Odpowiedz

6

jeżeli nie jest to praca dla Ciebie:

if(picked_blue) { 
    $('#text1').show(); 
    $('#text2').hide(); 
} else { 
    $('#text1').hide(); 
    $('#text2').show(); 
} 

gdzie text1 i text2 akcji stanowisko w DOM , z tekstami takimi jak "niebieski" i "nie niebieski w ogóle", odpowiednio?

+0

Cóż, to działa :) Dzięki za pomoc. – Smiley

2

Musisz umieścić warunek w innej części wyciągu.

$(function() { 
    $('#text1').hide(); 
    $('#select2').on('change', function(event) { 
     var opt = this.options[ this.selectedIndex ]; 
     var picked_blue = $(opt).text().match(/Blue/i); 
     if(picked_blue) { 
      $('#text1').show(); 
     } else { 
      $('#text1').hide(); 
      if($(opt).text().match(/Red/i)) 
      { 
        //You code here 
      } 
     } 
    }); 
}); 

lub kod skrótu.

$(function() { 
    $('#text1').hide(); 
    $('#select2').on('change', function(event) { 
     selectedVal = $(this).val().toLowerCase(); 
     switch (selectedVal){ 
     case 'blue': 
      //Your code 
      break; 
      case 'red': 
      //Your code 
      break; 
      case 'black': 
      //Your code 
      break; 
      default: 
      //your code 
     } 
    }); 
}); 
+0

Problem polega na tym, że to, co dodałeś, działa tylko w przypadku elementów z prefiksem Red, ale mam wiele innych. – Smiley

+0

Spróbuj użyć mapy zamiast 'var actions = {'blue': function() {$ text1.show(); }, 'red': function() {/ * bla * /}} 'with' actions [selected]() ' – EricG

+0

@ user1914940, Mam zaktualizowaną odpowiedź. – Adil

1

Dlaczego nie można spróbować z Funkcja przełączania w jQuery

$('#text1').toggle(); 
Powiązane problemy