jquery "Регулярные" выражения в селекторах, исключение (not in), "всё кроме" -- пример кода. Скрытие части формы

Задача

Переключают radio button, список "радио-кнопок" ( у нас далее он заселекчен по 'input[name=User\\[bind_type\\]]'), в зависимости от того какой вариант выбран, надо показывать сответствующий ему блок из какой-то группы (div[class*="field-med"]), в все остальные элементы в такой группе скрыть.

Хоть регуляных выражений непосредственно в селекторе в jquery пока нет, всё же можно использовать сложные селекторы, где с помощью спецсимволов можно создавать довольно гибкие условия выборки (а-ля (div[class*="field-med"]) -- где звездочка означает входение подстроки в класс).

Решение

Можно как-то так

$('input[name=User\\[bind_type\\]]').change(function(){

	// сначала получим значение
	var value = $( 'input[name=User\\[bind_type\\]]:checked' ).val();

	var pattern = 'div.field-med' + value; // этот не скрываем

	// а остальные скрываем
	$('div[class*="field-med"]') // все элементы в класс которых входит подстрока field-med
			.not(pattern) // исключая такие(/такой)
			.hide(500); // скрываем

	$(pattern).show(500);

}); 

Но кула лучше анимация будет выглядеть, если сделать так:

    $('input[name=User\\[bind_type\\]]').change(function(){
        
        // сначала получим значение
        var value = $( 'input[name=User\\[bind_type\\]]:checked' ).val();
        var pattern = 'div.field-med' + value; // этот не скрываем
        var time = 900; // время анимации в милисекундах

        // сначала скрываем всё лишнее
        $('div[class*="field-med"]') // все элементы в класс которых входит подстрока field-med
              .not(pattern) // исключая такие(/такой)
              .slideUp(time, 
                      function() {
                          $(pattern).slideDown(time); // показываем
                      }
        );// скрываем     
    });  

Тут полезно почитать про:

Key Words for FKN + antitotal forum (CS VSU):