すべてに共通のクラス名を付けて、クラス セレクターを使用して変更イベントをバインドするだけです。
HTML:
<input type="text" class="search-field" />
<input type="text" class="search-field" />
<select class="search-field" ><option>1</option><option>2</option></select>
<input type="radio" class="search-field" />
JS:
$('.search-field').change(function() {
// validate all search field values
// display search results based on values
// if search results already shown, filter based on $(this).val()
});
これらのフィールドが多数ある場合は、ハンドラーを各フィールドにバインドする (上記のコードのように) よりも、委任されたイベント ハンドラーを使用するとパフォーマンスが向上します。
HTML:
<div id='parent'>
<input type="text" class="search-field" />
<input type="text" class="search-field" />
<select class="search-field" ><option>1</option><option>2</option></select>
<input type="radio" class="search-field" />
</div>
JS:
$('#parent').on('change', '.search-field', function() {
// validate all search field values
// display search results based on values
// if search results already shown, filter based on $(this).val()
});