2013-09-18 1 views
0

У меня есть 3 блока select2, и страница требует, чтобы остальные два были отключены при использовании. У меня есть следующий код, однако он не работает. При загрузке страницы все Select2 исчезают (они установлены как скрытые входы в HTML):jQuery не работает с инструкциями спрятать select2

$("#collection-search").change(function(){ 
      if($(this).val()) 
       $("#subject-search").select2("enable", false); 
       $("#special-search").select2("enable", false); 
      else 
       $("#subject-search").select2("enable", true); 
       $("#special-search").select2("enable", true); 
     }); 

     $("#subject-search").change(function(){ 
      if($(this).val()) 
       $("#collection-search").select2("enable", false); 
       $("special-search").select2("enable", false); 
      else 
       $("#collection-search").select2("enable", true); 
       $("special-search").select2("enable", true); 
     }); 

     $("#special-search").change(function(){ 
      if($(this).val()) 
       $("#collection-search").select2("enable", false); 
       $("#subject-search").select2("enable", false); 
      else 
       $("#collection-search").select2("enable", true); 
       $("#subject-search").select2("enable", true); 
     }); 

Любые идеи, почему это происходит? Я просматриваю FireBUG, но ничего полезного не появляется. Единственное, что я вижу, это синтаксическая ошибка в выражении «else» в jquery.min.js.

+0

Если ваши условные операторы имеют более одной строки, используйте скобки или она сломается. –

+0

Нравится: 'if ($ (this) .val()) { $ (" # subject-search "). Select2 (" enable ", false); $ ("# special-search"). Select2 ("enable", false);} '? – TuxMeister

+0

Да, в противном случае утверждение не имеет понятия, где положить конец –

ответ

0

Согласно комментариям, вот ваш код в форме ответа - просто нужно было добавить скобки. Рад, что это работает!

$("#collection-search").change(function(){ 
     if($(this).val()) { 
      $("#subject-search").select2("enable", false); 
      $("#special-search").select2("enable", false); 
     } 
     else { 
      $("#subject-search").select2("enable", true); 
      $("#special-search").select2("enable", true); 
     } 
    }); 

    $("#subject-search").change(function(){ 
     if($(this).val()) { 
      $("#collection-search").select2("enable", false); 
      $("special-search").select2("enable", false); 
     } 
     else { 
      $("#collection-search").select2("enable", true); 
      $("#special-search").select2("enable", true); 
     } 
    }); 

    $("#special-search").change(function(){ 
     if($(this).val()) { 
      $("#collection-search").select2("enable", false); 
      $("#subject-search").select2("enable", false); 
     } 
     else { 
      $("#collection-search").select2("enable", true); 
      $("#subject-search").select2("enable", true); 
     } 
    });